私はboost::accumulatorsとEigen線形代数ライブラリを利用するテンプレートアルゴリズムを書いています。コンパイル中、ビジュアルスタジオコンパイラ(cl.exe)、メモリ消費量は2.5GBを超えるRAMでピークに達し、私のPC(Windows 732ビットと3GBの仮想アドレス空間)が応答しなくなります(非常に長い時間:約1分) 。これらのコンパイルユニットのバイナリファイル(.obj)は10〜20MBです。
私の質問(これらの特定のライブラリには向けられていません)
- テンプレートを多用するコードのこれは正常な動作ですか?
- メモリ需要とコンパイル時間を削減するためにできることはありますか?
- 問題に対する適切な解決策がない場合、プログラミング言語を設計する人々がこれに対処しないのはなぜですか?C ++を理解する人が増えるほど、テンプレートを使用し、コンパイルが難しいコードや肥大化したバイナリを生成する可能性が高くなります。