typedef auf Map forward deklarieren - geht sowas???
-
Hallo!
Ich hab das Problem, dass ich in einer meiner h-Dateien einen typedef auf eine stl-Map angelegt habe und diesen typen nun in einer anderen h Datei als übergabe parameter für funktion benutzen möchte. Dabei reicht mir hier ein Zeiger auf die Map. Damit ich die H Datei nicht inkludieren muss, wollte ich nun den typ irgendwie forward deklarieren - so ähnlihc wie mit klassen. Geht so etwas und wenn ja wie?
Danke schonmal und viele Grüße
Der Christoph
-
Geht nur für die iostreams-Bibliothek (mit #include <iosfwd>). Für die restlichen STL-Sachen gibbet derzeit keine Möglichkeit zur Forward-Deklaration.
Selbst eine Hinzuschreiben ist nicht korrekt, da es der Implementation der STL freigestellt ist, nach den im Standard vorgeschriebenen Templateparametern eigene hinzuzufügen.
Ein typedef auf ein Template kannst Du übrigens auch nur hinschreiben, wenn alle formalen Parameter des Templates benannt sind.
-
Wenn in hugo.hpp das steht:
typedef std::map<Elemenet> ElementMap;und du ElementMap in birne.hpp benützen möchtest, musst du dort die hugo.hpp includieren, nichts mit Forward-Decl.
MfG SideWinder
-
Ich denke er meint sowas hier:
irgendwas.h:
// #include <map> // böses, riesiges, fettes Include sparen, weil es im Header auch überhaupt nicht gebraucht wird class map; // forward-Deklaration typedef map<Klaus, Peter> MeineMap; extern void f( const MeineMap& harry);Genau sowas geht nicht. Das #include <map> muss immer hin, wenn man maps benutzt - auch wenn nur als Pointer oder Referenz in Headern. Der Grund dafür steht in meinem ersten Post.
-
Ich glaub er meint das nicht, aber wird sich zeigen


MfG SideWinder
-
Hmm - also ich meinte das Beispiel mit der Birne und dem Hugo... Mist, dann muss ich mir da wohl was anderes schlaues einfallen lassen oder die verdammte Datei doch einfach includen...
Auf jeden Fall Danke für die Hilfe, dann muss ich da schon ma nicht mehr weiter suchen...Tschööö sagt
Der Christoph