读书人

类模板的默认参数,该如何处理

发布时间: 2012-04-13 13:50:24 作者: rapoo

类模板的默认参数

C/C++ code
template<class T = int>class widget{public:    widget(){};};


C/C++ code
int _tmain(int argc, _TCHAR* argv[]){    widget w;    return 0;}


编译会说缺乏参数列表,w大小未知,找不到合适的默认构造函数。问题是我在类的定义中已经指定了默认参数啊。环境是vs2010,求解。

[解决办法]
看看最新的gcc是否支持吧。
[解决办法]
error C2955: 'widget' : use of class template requires template argument list

改成
widget<> w;
[解决办法]
探讨
诡异,这样就可以了。模板中有多个参数时,默认参数可以不必再列出来。只有一个时,似乎必须弄个模板符号

引用:

error C2955: 'widget' : use of class template requires template argument list

改成
widget<> w;

[解决办法]
C/C++ code
widget<> w; 

读书人网 >C++

热点推荐