VC ++中的默认模板参数参数

时间:2009-09-30 03:32:39

标签: visual-c++ templates default-value

VC ++不支持默认模板参数参数吗?这个简单的代码:

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

X x;

给了我一个'error C2955: 'X' : use of class template requires template argument list'。但是,没有关于模板声明的抱怨。

我在这里缺少什么?有些编译器可能会切换?

2 个答案:

答案 0 :(得分:9)

我认为你仍然需要指定一个空模板列表,或者使用typedef:

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

X<> x;

typedef X<> XX;
XX x;

答案 1 :(得分:0)

您的问题已经answered very well。但是,我想指出的是,每当你问自己是自己还是编译器时,请将代码剪切到Comeau's online compiler。 Comeau被广泛认为是最符合标准的C ++编译器,并且具有出色的错误消息。

顺便说一下,令人惊讶的是编译器的成本并不高,所以如果你想在机器上方便使用它,那么价格就不应该让你失望了。