VC++ はデフォルトのテンプレート パラメータ引数をサポートしていませんか? この簡単なコード:
template <typename T=int>
class X
{
};
X x;
' error C2955: 'X' : use of class template requires template argument list
' が表示されます。ただし、テンプレート宣言については不満はありません。
ここで何が欠けていますか?多分いくつかのコンパイラスイッチ?
VC++ はデフォルトのテンプレート パラメータ引数をサポートしていませんか? この簡単なコード:
template <typename T=int>
class X
{
};
X x;
' error C2955: 'X' : use of class template requires template argument list
' が表示されます。ただし、テンプレート宣言については不満はありません。
ここで何が欠けていますか?多分いくつかのコンパイラスイッチ?
空のテンプレート リストを指定するか、typedef を使用する必要があると思います。
template <typename T=int>
class X
{
};
X<> x;
typedef X<> XX;
XX x;
あなたの質問はすでに非常によく答えられています。ただし、指摘したいのは、それが自分なのかコンパイラなのかを自問するときはいつでも、Comeau のオンライン コンパイラに抜粋されたコードを取り上げることです。Comeau は、最も標準に準拠した C++ コンパイラとして広く認められており、優れたエラー メッセージを表示します。
ところで、驚くべきことに、コンパイラのコストはそれほど高くありません。したがって、マシンで便利に使用したい場合は、価格が邪魔になることはありません。