001
27.03.2008, 16:24 Uhr
0xdeadbeef
Gott (Operator)
|
Zunächst ist das keine Template-Klasse, sondern eine Klassen-Template. Bzw. Klassenvorlage. Das hat zwei Dinge zur Folge:
1. Eine Template selbst ist keine Klasse, und dementsprechend kein Typ, erst ihre Spezialisierung ist es, und 2. Der Compiler muss den kompletten Code der Template zur Compilezeit kennen, um sie spezialisieren zu können.
Also,
C++: |
std::vector<std::vector> v; // nicht möglich, std::vector ist kein Typ std::vector<std::vector<int> > v; // möglich, std::vector<int> ist ein Typ
|
Und zweitens muss deine Klassenvorlage vollständig in den Header und per #include in die benutzende Übersetzungseinheit eingebunden werden.
Im Übrigen wäre eine genauere Fehlerbeschreibung hilfreich. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra Dieser Post wurde am 27.03.2008 um 16:25 Uhr von 0xdeadbeef editiert. |