Generic in Template verwenden
-
hallo,
ich hoffe diese Frage ist noch nicht allzuoft aufgetaucht, aber ich hab zumindest nichts gefunden.
Wie kann ich so etwas realisieren:template <class T> class Foo { public: Foo(vector<T> *list); };dh: ich möchte den generischen vector mit demselben typ wie Foo instanzieren...
Ich hoffe ich habe mich verständlich ausgedrückt!
danke im voraus!
-
Hast Du den Code jemals ausprobiert, bevor Du hier gefragt hast? Der ist nämlich (bis hierher) ansich genau wie er sein muss.
-
wenn ich dich richtig verstanden habe ist typedef dein freund
template< class T_> struct foo { typedef std::vector<T_> container_type; foo(container_type *p) { } }; int main(int argc, char *argv[]) { typedef foo<int> f; f::container_type c; // usw
-
jo, natürlich!
dann kommen fehler wie: (gcc-4.1)
error: expected ';' before 'someVariable'
-
das führt zu:
typedef vector<T> foo;
Test.h:15: error: ISO C++ forbids declaration of 'vector' with no type Test.h:15: error: expected ';' before '<' tokenich hab natürlich auch ein wenig herumgesucht und hab gefunden, dass das die Template Klasse und der Vektor zu unterschiedlichen Zeiten erzeugt werden... - daher das Problem...
-
<vector> inkludiert

[edit]
namespace offen
-
damn you're right

omg sorry!noch ein Problem: warum funktioniert das nicht:
vector<T>::iterator currentPosition;
-
typename muss davor:
typename vector<T>::iterator currentPosition;
-
typename muss davor
[edit]
ich bin halt langsam
-
danke, das wars!
typename kannte ich noch nicht!herzlichen dank!