Я использую довольно много контейнеров в форме
boost::bimap<boost::bimaps::multiset_of<std::string>, boost::bimaps::set_of<AnEnum> >
Я определяю их в заголовочном файле, который включен в довольно много файлов cpp (это после того, как я максимально ограничил доступ к заголовочному файлу). Файлы .a, создаваемые в отладочной сборке, занимают более 1 ГБ (что приводит к остановке компиляции на полпути из-за ошибки «нет места на устройстве» и, естественно, время компиляции увеличилось в геометрической прогрессии.
Используемый компилятор gcc 4.8.1. Просто хотел узнать, сталкивался ли кто-нибудь с этой проблемой с boost :: bimap и что они сделали, чтобы решить эту проблему
Я очень вероятно, что каждый раз, когда вы используете такой bimap
в другом файле он специализирован, что приводит к огромному дублированию кода. Если вы используете c++11
тогда вы должны объявить их как extern template
И специализировать его только в одном файле. Увидеть использование внешнего шаблона (C ++ 11)
Других решений пока нет …