Template-Klasse soll sich selbst Template-Template-Parameter uebergeben ...
-

hier mal eine lustige Konstruktion:
template<class C, template <class> class TC> class Class1 { ... }; template <class T> class Class2 { typedef Class1<T,Class2> my_test_type; ... };fuehrt zur Fehlermeldung:
Test.h:XX: error: type/value mismatch at argument 2 in template parameter list for ‘template<class T, template<class> class TC> class Class1’ Test.h:XX: error: expected a class template, got ‘Class2<T>’Warum? Wieso? Weshalb? Und kann man so etwas trotzdem irgendwie machen?
-
template<class C, template <class T> >
-
Das Problem ist, dass innerhalb von Class2 der Typ "Class2" gleichwertig zu "Class2<T>" ist, das problem kann man umgehen, indem man den namespace angibt:
template<class C, template <class> class TC> class Class1 { ... }; template <class T> class Class2 { typedef Class1<T,::Class2> my_test_type; ... }; //bzw namespace foo{ template<class C, template <class> class TC> class Class1 { ... }; template <class T> class Class2 { typedef Class1<T,foo::Class2> my_test_type; ... }; }
-
Dankeschoen, mit den namespaces klappt es
