Templates mit getrennter Dekleration und Definition, vorab Typen festlegen

FBIagent

Erfahrenes Mitglied
Guten tag,

ich habe eine kleine Frage bezüglich Templates. Und zwar habe ich eine Template Klasse
PathNode2D die getrennt in .h die Deklaration und in .cpp die Definition ist. Ich habe
bereits gelesen, dass nur ein Compiler den vollen Standardumfang von C++ untestützt
und bei allen anderen der Template code dem Linker zur verfügung stehen muss da sie extern für
templates nicht unterstützen.

Nun die beiden folgenden Möglichkeiten boten sich mir an:
1. Dekleration und Definition nicht zu trennen, also direkt im Header aus zu programmieren.
2. Explizite Angabe gebräuchlicher Datentypen(template class PathNode2D< TYPE >;) in der .cpp, wobei TYPE für den datentyp steht.
C++:
template class PathNode2D< char >;
template class PathNode2D< unsigned char >;
template class PathNode2D< short >;
template class PathNode2D< unsigned short >;
template class PathNode2D< int >;
template class PathNode2D< unsigned int >;
template class PathNode2D< long >;
template class PathNode2D< unsigned long >;
template class PathNode2D< long long >;
template class PathNode2D< unsigned long long >;
template class PathNode2D< __int64 >;
template class PathNode2D< unsigned __int64 >;

template class PathNode2D< float >;
template class PathNode2D< double >;

Natürlich wäre es vorteilhaft bei Trennung von Deklaration und Definition nicht auf die
explizite Angabe gebräuchlicher Datentypen angewisen zu sein.

Meine Frage wäre ob es einen workaround gibt mit dem dies möglich ist.
Ich benutze "MS Visual Studio 2005 v8.0.5" mit aktuellem Sevice Pack.
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück