■関数テンプレート(Tはプレースホルダ)
template <Class T>T 関数名(T 引数名,T 引数名){
Tをデータ型とした変数を使った処理;
}
list10_2.cpp
#include <iostream>
using namespace std;
// 関数テンプレートで定義したgetMin関数
//template <Class T>T 関数名(T 引数名,T 引数名){
template <class T> T getMin(T a, T b) {
//return a < b ? a : b;
if (a < b) {
return a;
} else {
return b;
}
}
// main関数
int main() {
// int型のgetMin関数を呼び出す
int a, b, c;
a = 123;
b = 456;
c = getMin(a, b);
cout << c << endl;
// double型のgetMin関数を呼び出す
double x, y, z;
x = 1.23;
y = 4.56;
z = getMin(x, y);
cout << z << endl;
return 0;
}
cd_samples10_2_template.cmd
C:\samples\chapter10>cd C:\samples\chapter10\
C:\samples\chapter10>g++ -o list10_3.exe list10_3.cpp
C:\samples\chapter10>list10_3.exe
123
1.23
a
1.11
C:\samples\chapter10>cmd /k
C:\samples\chapter10>