関数テンプレートのインスタンス化

関数テンプレートは型の最初に呼び出すとインスタンスを作成します。各インスタンスは型に特化したテンプレート関数のバージョンです。このインスタンスは関数が型に使用されるたびに呼び出されます。異なるモジュールで複数の同一のインスタンス化である場合インスタンス化の 1 種類のコピーは実行可能ファイルに配置されます。

関数の引数の変換はパラメーターはテンプレート引数に依存しないすべての引数とパラメーターのペアの関数テンプレートで使用されます。

関数テンプレートは引数として特定の型を持つテンプレートの宣言によって明示的にインスタンス化できます。たとえば次のコードを使用できます :

// function_template_instantiation.cpp
template<class T> void f(T) { }

// Instantiate f with the explicitly specified template.
// argument 'int'
//
template void f<int> (int);

// Instantiate f with the deduced template argument 'char'.
template void f(char);
int main()
{
}

参照

関連項目

関数テンプレート