「非型」テンプレート・パラメーター

C++「非型」テンプレート・パラメーターの構文は、次のいずれかの型の宣言と同じです。

配列、または関数として宣言された「非型」テンプレート・パラメーターは、 ポインター、または関数を指すポインターにそれぞれ変換されます。 次の例は、このことを示しています。

template<int a[4]> struct A { };
template<int f(int)> struct B { };
 
int i;
int g(int) { return 0;}
 
A<&i> x;
B<&g> y;

&i の型は、int * で、 &g の型は、int (*)(int) です。

「非型」テンプレート・パラメーターを const または volatile で修飾できます。

「非型」テンプレート・パラメーターを、浮動小数点、クラス、 または void 型として宣言することはできません。

「非型」テンプレート・パラメーターは、左辺値ではありません。

関連参照

IBM Copyright 2003