1

私はフォームのかなりの数のコンテナを使用しています

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

かなりの数の cpp ファイルに含まれているヘッダー ファイルでそれらを定義しています (これは、ヘッダー ファイルの公開を可能な限り制限した後です)。デバッグ ビルドで作成される .a ファイルは 1 GB を超えて実行されます (「デバイスにスペースがありません」というエラーが原因でコンパイルが途中で停止し、コンパイル時間が指数関数的に増加します。

使用されているコンパイラは gcc 4.8.1 です。boost::bimap でこの問題に遭遇した人がいるかどうか、およびこの問題を解決するために何をしたかを知りたいだけです

4

1 に答える 1

2

このような を別のファイルで使用するたびにbimap、特殊化されて膨大なコードの重複が発生する可能性が非常に高くなります。を使用している場合は、c++11それらを として宣言しextern template、1 つのファイルのみに特化する必要があります。extern テンプレートの使用 (C++11) を参照してください。

于 2014-03-04T08:19:46.330 に答える