Template Funktion in Template Klasse schreiben
-
Wenn ich eine Template Funktion in einer Template Klasse selber ausprogrammiere, dann klappt das wunderbar:
template <class Type> class Foo { public: Type item; template <class otherType> void bar(otherType b) { this->item = b; } };Möchte ich sie aber ausserhalb der Klasse ausprogrammieren, dann wirft mir der g++ Fehler entgegen:
template <class Type> class Foo { public: Type item; template <class otherType> void bar(otherType b); }; template <class Type, class otherType> void Foo<Type>::bar(otherType b) { this->item = b; }Die Fehlermeldung ist folgende:
tst.cpp:11: error: prototype for ‘void Foo<Type>::bar(otherType)’ does not match any in class ‘Foo<Type>’ tst.cpp:7: error: candidate is: template<class Type> template<class otherType> void Foo::bar(otherType)Leider kann ich an der Fehlermeldung nichts ablesen, was ich hier falsch geschrieben habe.
Kann mich da jemand aufklären?
-
So geht das:
template <class Type> class Foo { public: Type item; template <class otherType> void bar(otherType b); }; template <class Type> template <class otherType> void Foo<Type>::bar(otherType b) { this->item = b; }
-
Ahh, vielen Dank.
