我使用了不少形式的容器
boost::bimap<boost::bimaps::multiset_of<std::string>, boost::bimaps::set_of<AnEnum> >
我在一个包含在相当多的cpp文件中的头文件中定义它们(这是在我尽可能限制头文件的曝光之后)。在调试版本中创建的.a文件运行到1 GB以上(由于“设备上没有空间”错误导致编译中途停止,编译时间自然会成倍增加。
正在使用的编译器是gcc 4.8.1。只是想知道是否有人遇到过boost :: bimap这个问题以及他们为解决这个问题所做的工作
答案 0 :(得分:2)
我很有可能每次在不同的文件中使用这样的bimap
时,它都是专门的,导致巨大的代码重复。如果您使用的是c++11
,那么您应该将它们声明为extern template
,并且只在一个文件中对其进行专门化。见using extern template (C++11)