C++のテンプレートパラメータ

1788 ワード

テンプレートのパラメータは、テンプレートパラメータと呼び出しパラメータに分けられます.
例:
templateinline T 1 max(const T 2 a,const T 3 b){//TODO:コード実装...  }
ここで、1行目はテンプレートパラメータを定義し、2行目はテンプレートの呼び出しパラメータを定義します.戻り値はテンプレートの呼び出しパラメータではないことに注意してください.
 
次に、テンプレートパラメータの例を説明します.
#include<stdio.h>

template <typename T> //          。
inline T max(const T a, const T b)  
{  
	return a < b ? b : a;  
}  

template <typename T> 
inline T max1(const T a, const T b)  
{  
	return a < b ? b : a;  
}  

inline int max1(const int a, const int b)  
{  
	//       ,     +100 
	return a < b ? b+100 : a+100;  
} 

template <typename T1, typename T2, typename T3>  //              。 
inline T1  max2(const T2 a, const T3 b)  
{  
	return a < b ? b : a;  
}  


void main()
{
	int		i;
	double  d;

	
	//        ,       。           ,                int。
	i = max(42, 66); 
	printf("i = %d
", i); // , ? ? // , , , , max1 。 i = max1(42, 66); printf("i = %d
", i); // , 。 d = max<double>(4, 4.2); printf("d = %f
", d); // , 。 , , , double 。 // , ; T1 T2 , 。 d = max2<double>(4, 4.2); printf("d = %f
", d); getchar(); return; }