templates :-/
-
Hi
ich habe ein Problem mit den Templates. In der Headerdatei definiere ichtemplate<typename T> class foo { public: T ret(); protected: T bar; };
und beim includen schreibe ich das :
template<typename T> foo<T>::ret() { return (T)0; }
Beim kompilieren gibt er aber einen Fehler aus :
error LNK2019: Nicht aufgelöstes externes Symbol '"public: int __thiscall foo<int>::ret(void)"
Was ist das ?
-
Was heisst "beim includen"? In einer .cpp Datei? Templates werden immer in der Header Datei vollständig definiert.
-
hm...
Optimizer schrieb:
Was heisst "beim includen"? In einer .cpp Datei? Templates werden immer in der Header Datei vollständig definiert.
Ist das so ? Ich dachte, man kann templates extra implementieren...
-
Nur wenn dein Compiler das Schlüsselwort export unterstützt.
-
Und wie funtzt das Schlüsselwort export.
Sry, aber das ist mein "erstes Mal" mit templates...
-
omg schrieb:
Und wie funtzt das Schlüsselwort export.
in der regel garnicht. kein compiler unterstützt das soviel ich weiss (comeau vielleicht?).
-
omg schrieb:
template<typename T> foo<T>::ret() { return (T)0; }
hier fehlt der Typ des Rückgabewerts.
-
in der regel garnicht. kein compiler unterstützt das soviel ich weiss (comeau vielleicht?).
Der BC5.5 kennt mal ein "export" Keyword. Ob es aber korrect implementiert ist weis ich nicht da ich den "export" Syntax nicht kenne.