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 回答