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