先頭へ戻る

テンプレート | Programming Place Plus 用語集

Programming Place Plus トップページ用語集

先頭へ戻る

名称

このページでは、プログラミング言語の機能としての「テンプレート」を取り上げます。

解説

静的型付け言語において、を抽象化したソースコードを記述するための、プログラミング言語の機能の1つです。

テンプレートを備えているプログラミング言語には C++ やD言語があります。

静的型付け言語においては通常、変数や、関数仮引数戻り値の型を明示的に指定しなければなりません(型推論を使う場合を除く)。

テンプレートを用いると、型を抽象化して、ソースコードを共通化できます。たとえば C++ では次のように1つのソースコードにまとめられます。

template <typename T>    // テンプレートであることを示す記述
T max(T a, T b)          // 具体的な型の代わりに T を使う
{
    return a >= b ? a : b;
}

これは関数テンプレートと呼ばれる、テンプレートの一種です。関数の仮引数や戻り値に現れる型を、特定の型に限定せず、T という名前で抽象化しています。T の部分は、実際にこの関数を使用するときに特定され、その型に応じた本物の関数がコンパイラによって生成されます。

このほかにも、クラスメンバの型を抽象化するクラステンプレートや、変数の型を抽象化する変数テンプレートがあります。

C++ の関数テンプレートについては C++編【言語解説】第9章、クラステンプレートは第20章で解説しています。

このように、型を抽象化しておこなうプログラミングの手法を、ジェネリックプログラミング(総称プログラミング)と呼びます。また、テンプレートの仕様をうまく活用して、計算処理の多くをコンパイルの時点で済ませてしまおうとする手法があり、テンプレートメタプログラミングと呼ばれています。


参考リンク

更新履歴


用語集のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー