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

Boost Bimap takes too much memory in debug build

本文关键字:太多 内存 版本 Bimap 调试 Boost      更新时间:2023-10-16

我正在使用相当多的形式容器

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

我正在一个头文件中定义它们,该头文件包含在相当多的 cpp 文件中(这是我尽可能限制头文件的暴露之后)。在调试版本中创建的 .a 文件运行到 1 GB 以上(导致编译由于"设备上没有空间"错误而中途停止,自然编译时间呈指数级增长。

正在使用的编译器是 gcc 4.8.1。只是想知道是否有人在 boost::bimap 中遇到过这个问题,以及他们做了什么来解决这个问题

我很可能每次在不同的文件中使用这样的bimap时,它都是专门的,导致大量的代码重复。如果你使用的是c++11那么你应该将它们声明为extern template,并且只在一个文件中专门化它。请参阅使用外部模板 (C++11)