VC ++不支持默认模板参数参数吗?这个简单的代码:
template <typename T=int>
class X
{
};
X x;
给了我一个'error C2955: 'X' : use of class template requires template argument list
'。但是,没有关于模板声明的抱怨。
我在这里缺少什么?有些编译器可能会切换?
答案 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 ++编译器,并且具有出色的错误消息。
顺便说一下,令人惊讶的是编译器的成本并不高,所以如果你想在机器上方便使用它,那么价格就不应该让你失望了。