インテル® C++ コンパイラーは、extern テンプレートをサポートしています。これにより、テンプレートを特定の変換単位ではなく、別の変換単位またはライブラリーでインスタンス化するように指定できます。コンパイラーは次のテンプレートをサポートします。
インライン・テンプレート – メンバーをインスタンス化せずに、クラスのコンパイラーがサポートするデータ (例: vtable) をインスタンス化します。
スタティック・テンプレート – テンプレートのスタティック・データ・メンバーをインスタンス化し、仮想テーブルまたはメンバー関数はインスタンス化しません。
また、次のオプションを使用することで、テンプレートのインスタンス化をより高いレベルで制御することができます。
オプション |
説明 |
---|---|
-fno-implicit-templates |
暗黙的にインスタンス化される非インライン・テンプレートでコードを出力しません。明示的なインスタンス化でのみコードを出力します。 |
-fno-implicit-inline-templates |
インライン・テンプレートの明示的なインスタンス化でもコードを出力しません。デフォルトでは、インライン化を別々に処理します。そのため、最適化の有無にかかわらず、コンパイルには同じ明示的なインスタンス化のセットが必要となります。 |