関数テンプレートサンプルソース

#include <iostream>
 
using namespace std;
 
//2つの引数の最大値を求める
int maxvalue(int a, int b)
{
	if (a > b)
		return a;
	else 
		return b;
}
 
double maxvalue(double a, double b)
{
	if (a > b)
		return a;
	else
		return b;
}
 
float maxvalue(float a, float b)
{
	if (a > b)
		return a;
	else
		return b;
}
 
template <typename T> 
T maxvalue(T a, T b)
{
	if (a > b)
		return a;
	else
		return b;
}
int main()
{
	int x = 10, y = 30, z;
	double x1 = 15.1, y1 = 10.1, z1;
 
	z = maxvalue<int>(x, y);
	z1 = maxvalue<double>(x1, y1);
	cout << z << endl;
	cout << z1 << endl;
	return 0;
}