このページでは、プログラミング言語の機能としての「テンプレート」を取り上げます。
静的型付け言語において、型を抽象化したソースコードを記述するための、プログラミング言語の機能の1つです。
テンプレートを備えているプログラミング言語には C++ やD言語があります。
静的型付け言語においては通常、変数や、関数の仮引数や戻り値の型を明示的に指定しなければなりません(型推論を使う場合を除く)。
テンプレートを用いると、型を抽象化して、ソースコードを共通化できます。たとえば C++ では次のように1つのソースコードにまとめられます。
template <typename T> // テンプレートであることを示す記述
(T a, T b) // 具体的な型の代わりに T を使う
T max{
return a >= b ? a : b;
}
これは関数テンプレートと呼ばれる、テンプレートの一種です。関数の仮引数や戻り値に現れる型を、特定の型に限定せず、T という名前で抽象化しています。T の部分は、実際にこの関数を使用するときに特定され、その型に応じた本物の関数がコンパイラによって生成されます。
このほかにも、クラスのメンバの型を抽象化するクラステンプレートや、変数の型を抽象化する変数テンプレートがあります。
C++ の関数テンプレートについては C++編【言語解説】第9章、クラステンプレートは第20章で解説しています。
このように、型を抽象化しておこなうプログラミングの手法を、ジェネリックプログラミング(総称プログラミング)と呼びます。また、テンプレートの仕様をうまく活用して、計算処理の多くをコンパイルの時点で済ませてしまおうとする手法があり、テンプレートメタプログラミングと呼ばれています。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
RSS | 管理者情報 | プライバシーポリシー |