Противоречивые спецификаторы в объявлении C++

Я использую структуру данных bimap

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

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

когда я пытаюсь сделать это extern в my.h лайк

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

конфликтующие спецификаторы в объявлении 'hash_bimap' extern typedef boost:: bimap hash_bimap;

1 ответ

Решение

(уточняя комментарий kfsone) typedefs не должен быть extern, только фактическая переменная:

typedef boost::bimap< std::string, int > hash_bimap;
typedef hash_bimap::value_type position;
extern hash_bimap perm;
Другие вопросы по тегам