2016-05-19 14 views
2

Ich benutze eine Datenstruktur bimapWidersprüchliche Bezeich in Erklärung C++

typedef boost::bimap< std::string, int > hash_bimap; 
typedef hash_bimap::value_type position; 
hash_bimap perm; 

und es funktioniert in Hauptdatei in Ordnung. Jedoch bin ich daran interessiert, es in der Header-Datei zu verwenden, um es in jeder anderen .cpp Datei zugänglich zu machen.

wenn ich versuche, es zu machen extern in my.h wie

extern typedef boost::bimap< std::string, int > hash_bimap; 
extern typedef hash_bimap::value_type position; 
extern hash_bimap perm; 

widersprüchlichen Bezeich in Erklärung ‚hash_bimap‘ extern typedef boost :: bimap < std :: string, int> hash_bimap;

+2

typedef erklärt nicht alles, was der Linker sehen kann, so dass Sie nicht brauchen, zu/kann es nicht extern machen. – kfsone

+0

@ kfsone Danke !! Wie man es für andere '.cpp' Datei zugänglich macht – AwaitedOne

+0

Fügen Sie einfach den Header mit den Typedefs in die andere' cpp' Datei ein. –

Antwort

3

(auf kfsone Kommentar Ausarbeitung) typedef s muß nicht extern sein, nur die eigentliche Variable:

typedef boost::bimap< std::string, int > hash_bimap; 
typedef hash_bimap::value_type position; 
extern hash_bimap perm; 
+0

Danke !! ... :) :) – AwaitedOne