2016-05-19 5 views
2

Я использую структуру данных bimapКонфликтующие спецификаторов в объявлении C++

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

и она отлично работает в главном файле. Тем не менее, мне интересно использовать его в заголовочном файле, чтобы сделать его доступным в любом другом файле .cpp.

, когда я пытаюсь сделать это в externmy.h как

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

конфликтующие спецификаторов в объявлении «hash_bimap» экстерном ЬурейеЕ повышение :: bimap < станд :: строка, Int> hash_bimap;

+2

ЬурейеЕ ничего линкер может видеть не объявлять, так что вам не нужно to/не может сделать это extern. – kfsone

+0

@kfsone Спасибо! Как сделать его доступным для другого файла '.cpp' – AwaitedOne

+0

Просто включите заголовок с typedefs в другой файл' cpp'. –

ответ

3

(уточняя комментарий kfsone в) typedef s не нужно быть ехЬегп, только фактическая переменная:

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

Спасибо! ... :) :) – AwaitedOne

 Смежные вопросы

  • Нет связанных вопросов^_^