C++ ユーザーズガイド

静的インスタンス

静的インスタンスの場合は、すべてのインスタンスが現在のコンパイル単位内に置かれます。その結果、テンプレートは各再コンパイル作業中に再インスタンス化されます。インスタンスはテンプレートレポジトリに保存されません。

インスタンスは静的リンケージを受け取ります。これらのインスタンスは、現在のコンパイル単位以外では認識することも使用することもできません。そのため、テンプレートの同じインスタンス化がいくつかのオブジェクトファイルに存在することがあります。これには、次の欠点があります。

静的インスタンスは潜在的にコンパイル速度が速いため、修正継続機能を使用したデバッグにも適しています (『dbx コマンドによるデバッグ』を参照してください)。

静的インスタンスリンケージは、-instances=static コンパイルオプションで指定します。静的インスタンスリンケージは、定義取り込み型テンプレート編成 (テンプレートを使用するファイルの中にテンプレートの宣言と定義が含まれている編成) でのみ使用することができます。コンパイラは定義を検索しません (『C++ プログラミングガイド』を参照してください)。