Oracle® Solaris Studio 12.4: C++ ユーザーズガイド

印刷ビューの終了

更新: 2014 年 12 月
 
 

7.2.4 テンプレートインスタンスの配置とリンケージ

デフォルトでは、インスタンスは特別なアドレスセクションに移動し、リンカーは重複を認識、および破棄します。コンパイラには、インスタンスの配置とリンケージの方法として、外部、静的、大域、明示的、半明示的のどれを使うかを指定できます。

  • 外部 インスタンスは、次の条件が成立する場合に最大のパフォーマンスを達成します。

    • プログラム内のインスタンスのセットは小さいが、各コンパイル単位がそれぞれ参照するインスタンスのサブセットが大きい。

    • 2、3 個以上のコンパイル単位で参照されるインスタンスがほとんどない。

    静的インスタンスは非推奨です。

  • デフォルトである大域インスタンスは、あらゆる開発に適していますが、さまざまなインスタンスをオブジェクトが参照する場合に最適です。

  • 明示的インスタンスは、厳密に管理されたアプリケーションコンパイル環境に適しています。

  • 半明示的インスタンスは、前述より多少管理の程度が緩やかなアプリケーションコンパイル環境に適しています。ただし、このインスタンスは明示的インスタンスより大きなオブジェクトファイルを生成し、用途はかぎられています。

このセクションでは、5 つのインスタンスの配置とリンケージの方法について説明します。インスタンスの生成に関する詳細は、テンプレートのインスタンス化にあります。