我使用数据结构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&lt; std :: string,int&gt; hash_bimap;
答案 0 :(得分:3)
(详细说明kfsone的评论)typedef
不需要是外部的,只是实际的变量:
typedef boost::bimap< std::string, int > hash_bimap;
typedef hash_bimap::value_type position;
extern hash_bimap perm;