template funktion in einer klasse
-
ich verwende die vc6, hab problem mit template in einer klasse.
class testclass { wstring m_str; public: testclass(): m_str(L"2321"){} template<class T> T ToNumber() { wstringstream wss(m_str); T num; wss >> num; return num; } }; int main() { testclass tc; int n = tc.ToNumber< int >(); // hier soll fehler sein wcout << n << endl; return 0; }fehlermeldung ist
...\main.cpp(45) : error C2062: type 'int' unexpected
-
class T?
-
JnZn558 schrieb:
ich verwende die vc6, hab problem mit template in einer klasse.
class testclass { wstring m_str; public: testclass(): m_str(L"2321"){} template<class T> T ToNumber() { wstringstream wss(m_str); T num; wss >> num; return num; } }; int main() { testclass tc; int n = tc.ToNumber< int >(); // hier soll fehler sein wcout << n << endl; return 0; }fehlermeldung ist
...\main.cpp(45) : error C2062: type 'int' unexpected
es ist egal ob ich class T nehme oder typename T, beide machen fehler
-
template<class T> class testclass { std::wstring m_str; public: testclass(): m_str(L"2321"){} T ToNumber() { std::wstringstream wss(m_str); T num; wss >> num; return num; } }; int main() { testclass<int> tc; int n = tc.ToNumber(); //... }
-
heisst es, template innerhalb klassen geht nicht???? bei visual studio 2008 waere das kein problem
-
Hast Recht, beim VS 2008 klappt es, beim VS6 nicht.
Lösung: Nur noch VS 2008 benutzen.
-
dummerweise muss ich bei der firma vc6 benutzen, gibt es keine andere loesung als die ganze klasse in template klasse zu verwandeln. das gefaellt mir gar nicht
-
Da würde ich mir ernsthaft überlegen, mich nach einem neuen Job umzusehen.
VC6 ist alt. VC6 ist älter als der C++-Standard. In wenig überraschender Weise unterstützt VC6 nicht den gesamten C++-Standard, und Methodenvorlagen sind eines der Dinge, die VC6 schlicht nicht kennt.
-
Ich glaube das Stichwort ist Membertemplates.