Ich habe ein kleines Problem mit einer template class und einem vector den ich in ihr benutze. Am besten erstmal etwas Code. Ich glaube dann ist das Problem sofort ersichtilich.
C++:
template <typename T> class Klasse { private: std::vector<T> ring; std::vector<T>::iterator p; // warum geht das nicht public: Klasse(); virtual ~Klasse(); };
Wenn ich in std::vector<T>::iterator p; das T durch ein int ersetze funktioniert es, was aber nicht sin der Sache ist. Das Problem ist das ich jetzt nicht weiß wie ich eine Iterator-Variable anlegen kann. Was ist falsch. Hat wer eine Idee?
Der Hintergrund ist, dass der Compiler in der Template nicht sicher weiß, ob std::vector<T>::iterator nachher ein Typname oder eine Variable ist. Es könnte zum Beispiel einer mit einer Spezialisierung kommen a la