テンプレート型引き数

C++次のいずれかを、「型」テンプレート・パラメーターのテンプレート引き数として使用することはできません。

テンプレート引き数が、型なのか、式なのかあいまいな場合は、 テンプレート引き数は、型であると見なされます。 次の例は、このことを示しています。

template<class T> void f() { };
template<int i> void f() { };
 
int main() {
  f<int()>();
}

関数呼び出し f<int()>() は、T をテンプレート引き数として、 関数を呼び出します。このときコンパイラーは、int() を型として扱い、 したがって暗黙的にインスタンスを作成し、最初の f() を呼び出します。

関連参照

IBM Copyright 2003