[C++]テンプレート関数の使い方

テンプレート関数とは

テンプレート関数は、引数や戻り値の型を指定せずに定義できる仕組みです。

テンプレート関数は、呼び出し側で指定した引数の型にあわせて、関数内で使用する変数の型を変えることができるます。

このテンプレート関数の機能を使うことで、#defineマクロを使わなくても複数の型に対応した関数を記述する事が出来ます。

実験

プログラム

#include <iostream>
using namespace std;

template<class T>
T GetMax(T a, T b)
{
    T buf;
    if(a > b) buf = a;
    else buf = b;
    return buf;
}

int main(void){
    // Your code here!
    
    //int型のとき
    int a = 1, b = 2, n;
    
    n = GetMax(a, b);
    
    cout << n << endl;
    
    //double型のとき
    double c = 5.1, d = 6.1, m;
    
    m = GetMax(c, d);
    
    cout << m << endl;
    
    return 0;
}