Templateproblem mit list<T>
-
Hallo Leute!
Ich habe ein kleines Problem mit einer Klassentemplate. In dieser Klassentemplate brauche ich eine List um Objekte vom Typ T zu speichern und einen iterator, der mir auf ein bestimmtes Element der Liste zeigt. So sieht das Ganze in etwa aus:
#include <list> using namespace std; template <class T> class TemplateProblem { public: // ... private: // Diese Deklaration funktioniert. list<T> elements; // Diese Deklaration funktioniert nicht mehr. list<T>::iterator currElement; };Bei der Deklaration von list<T>::iterator currElement bekomme ich den Fehler:
g++ schrieb:
error: need 'typename' before 'std::list<T>::iterator' because 'std::list<T>' is a dependent scope
Das Problem hängt wohl damit zusammen, dass der Templateparameter für list<T>::iterator selbst ein Templateparameter der Klasse 'TemplateProblem' ist. Ich brauche aber diesen Iterator. Wie kann ich das Problem lösen?
-
Wie Dein Compiler schon sagt:
typename list<T>::iterator currElement;
-
lol wusste ich auch noch nicht...
-
Danke für die schnellen Antworten! Die Lösung ist schlussendlich ganz einfach.