4

VC++ はデフォルトのテンプレート パラメータ引数をサポートしていませんか? この簡単なコード:

template <typename T=int>
class X
{
};

X x;

' error C2955: 'X' : use of class template requires template argument list' が表示されます。ただし、テンプレート宣言については不満はありません。

ここで何が欠けていますか?多分いくつかのコンパイラスイッチ?

4

2 に答える 2

9

空のテンプレート リストを指定するか、typedef を使用する必要があると思います。

template <typename T=int>
class X
{
};

X<> x;

typedef X<> XX;
XX x;
于 2009-09-30T03:36:37.327 に答える
0

あなたの質問はすでに非常によく答えられています。ただし、指摘したいのは、それが自分なのかコンパイラなのかを自問するときはいつでも、Comeau のオンライン コンパイラに抜粋されたコードを取り上げることです。Comeau は、最も標準に準拠した C++ コンパイラとして広く認められており、優れたエラー メッセージを表示します。

ところで、驚くべきことに、コンパイラのコストはそれほど高くありません。したがって、マシンで便利に使用したい場合は、価格が邪魔になることはありません。

于 2009-09-30T05:05:07.223 に答える