Boost Bimap在调试版本中占用了太多内存

时间:2014-03-04 08:13:32

标签: c++ boost out-of-memory bimap

我使用了不少形式的容器

boost::bimap<boost::bimaps::multiset_of<std::string>, boost::bimaps::set_of<AnEnum> >

我在一个包含在相当多的cpp文件中的头文件中定义它们(这是在我尽可能限制头文件的曝光之后)。在调试版本中创建的.a文件运行到1 GB以上(由于“设备上没有空间”错误导致编译中途停止,编译时间自然会成倍增加。

正在使用的编译器是gcc 4.8.1。只是想知道是否有人遇到过boost :: bimap这个问题以及他们为解决这个问题所做的工作

1 个答案:

答案 0 :(得分:2)

我很有可能每次在不同的文件中使用这样的bimap时,它都是专门的,导致巨大的代码重复。如果您使用的是c++11,那么您应该将它们声明为extern template,并且只在一个文件中对其进行专门化。见using extern template (C++11)