1)template <class T = int, class U = double> //compiles
2)template <class T, class U =double> //compiles
3)template <class T = int, class U> //fails
为什么 1 和 2 可以编译而 3 不能?
最佳答案
出于同样的原因:
void f(int = 0, int);
失败。
无法使用第 3 版默认参数:
template<class T = int, class U> class B { ... };
B<, short> var; // ??? no such syntax
关于c++ - 模板代码中的默认类型参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3824144/