Template Methode in einer Template Klasse
-
Hoi,
Wie kann man eine Template Methode in einer Template Klasse realisieren?
mein momentane Code:
template <class T> class Vector2 { public: T x,y; template<class cl> cl Getl(); }; template<class T> /* hier muss jetzt der Typ des Rückgabewerts hin, aber welcher? Ich habe template<class cl> cl versucht, aber dann kommen immer haufenweise Fehler*/ Vector2<T>::Getl(Vector2 *vd) { x/=vd->x; y/=vd->y; return; }mfg
-
template <class U> class Foo { public: template <class T> T foo (); }; template <class U> template <class T> T Foo<U>::foo () { cout << "foobar\n"; return T(2.2); } int main() { Foo<int> f; cout << f.foo<double>() << endl; }klappt nicht? dann hast du wohl pech gehabt..
-
Ne, klappt nicht....

Hat nicht irgendjemand ne Idee was bei mir falsch sein könnte.
Ich benutze Vc++ 6.
mfg Wolly
-
Wolly schrieb:
Ich benutze Vc++ 6.
na, dann lass lieber templates weg. der vc6 versteht die nicht so richtig
-
...............
welcher versteht die denn?
Wie siehts mit Dev c++ aus?
mfg Wolly
-
Wolly schrieb:
Wie siehts mit Dev c++ aus?
der kann's eigentlich ganz gut. der frisst z.b. den code von davie ohne zu zucken.
-
VC++ 7.1 sprich VC++ 2003 versteht sie sehr gut, und das kostenlose VC++ 2005 Express sowieso.
-
In VC]]6.0 solltest Du die templateMethode innerhalb der Klassendefinition implementieren, dann sollte es funktionieren.
Also sotemplate <class T> class Vector2 { public: T x,y; template<class cl> cl Getl(Vector2 *vd) { x/=vd->x; y/=vd->y; cl Rueckgabe; return Rueckgabe; }; };Allerdings wird er wohl die template Methode mit dem Rueckgabewert nicht aufloesen koennen, daher wirst Du wohl schreiben muessen
template <class T> class Vector2 { public: T x,y; template<class cl> void Getl(Vector2 *vd, cl *pcl) { x/=vd->x; y/=vd->y; *pcl = ....; return; }; };
-
zum 0xFF728281 mal Dev-C++ ist nur eine IDE und kein Compiler. Das ist der g++ ( MinGW )
-
4285694593