声明c ++

时间:2016-05-19 16:40:43

标签: c++ boost-bimap

我使用数据结构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;

1 个答案:

答案 0 :(得分:3)

(详细说明kfsone的评论)typedef不需要是外部的,只是实际的变量:

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