IT用語集 › プログラミング › C++ テンプレート

C++ テンプレート

プログラミング Svenska → 更新: 2026-10-23

C++ のジェネリックプログラミングの仕組み。型をパラメータ化してコードを書く:template<typename T> class Vector { T data; ... };。1990年、Bjarne Stroustrup。

エラーメッセージの複雑さは悪名高い(「テンプレートエラーの嘔吐」)。SFINAE(Substitution Failure Is Not An Error)は、部分特殊化のための小技である。テンプレートメタプログラミングはコンパイル時に値を計算する手法で、古典的な例が Factorial<5>::value。C++20 のコンセプトはテンプレートの制約を標準化し、エラーメッセージをずっと読みやすくした。

実装は単相化(インスタンス化された型ごとに別のコードを生成する)に基づくため、実行時は速いが、バイナリは大きくなる。STL(標準テンプレートライブラリ)は全面的にテンプレートで作られており、std::vector、std::map、<algorithm> がその例だ。

← 用語集に戻る