up:: Cpp
source:: 9.1. 関数テンプレート - ゼロから学ぶ C++
CSharpのcsharp ジェネリックメソッドと似た機能。
リアルタイムでソースを変更する機能っぽい?
template <typename T>
T Sum(T a, T b) {
return a + b;
}
あちらと違い、引数型の指定部分は先に出てくる。
typenameでもclassでも使える。
参照は参照型だからこのまま渡される、&は必要無い?
またdecltype
を使用することで、引数型から戻り値型を推論できる。
template <typename T, typename U>
auto Sum(T a, U b) -> decltype(a + b) {
return a + b;
}
応用で可変長引数テンプレートがある。