Cześć,
#include <memory>
template<typename T>
class object
{
public:
typedef T class_type;
};
class example : public object<example> {};
class upgraded_example : example, public object<upgraded_example> {};
int main(void)
{
example::class_type a;
upgraded_example::class_type b;
return 0;
}
main.cpp: In function 'int main()':
main.cpp:18:3: error: reference to 'class_type' is ambiguous
upgraded_example::class_type b;
^
main.cpp:8:13: note: candidates are: typedef class upgraded_example object<upgraded_example>::class_type
typedef T class_type;
^
main.cpp:8:13: note: typedef class example object<example>::class_type
main.cpp:18:32: error: expected ';' before 'b'
upgraded_example::class_type b;
^
Jakieś pomysły, aby rozwiązać ten problem?