テンプレートインスタンスの位置とリンケージを制御します。
a の値 |
意味 |
---|---|
extern |
必要なすべてのインスタンスをテンプレートリポジトリに置き、それらに対して大域リンケージを行います (リポジトリのインスタンスが古い場合は、再びインスタンス化されます)。 |
explicit |
明示的にインスタンス化されたインスタンスを現在のオブジェクトファイルに置き、それらに対して大域リンケージを行います。必要なインスタンスが他にあっても生成しません。 |
global |
必要なすべてのインスタンスを現在のオブジェクトファイルに置き、それらに対して大域リンケージを行います。 |
semiexplicit |
明示的にインスタンス化されたインスタンスを現在のオブジェクトファイルに置き、それらに対して大域リンケージを行います。明示的なインスタンスにとって必要なすべてのインスタンスを現在のオブジェクトファイルに置き、それらに対して静的リンケージを行います。必要なインスタンスが他にあっても生成しません。 |
static |
必要なすべてのインスタンスを現在のオブジェクトファイルに置き、それらに対して静的リンケージを行います。 |
-instances を指定しないと、-instances=extern が使用されます。
extern 以外の値の場合、テンプレート定義が現在のコンパイル単位 に含まれていなければなりません (直接でも間接でも可)。この定義がないと、コンパイラはインスタンス化を報告なしに省略します。