为什么默认模板参数只允许在类模板上?为什么我们不能在成员函数模板中定义默认类型?例如:
struct mycclass {
template<class T=int>
void mymember(T* vec) {
// ...
}
};
Run Code Online (Sandbox Code Playgroud)
相反,C++强制只允许在类模板上使用默认模板参数.
如果我被允许做以下事情:
template <typename T = int>
class Foo{
};
Run Code Online (Sandbox Code Playgroud)
为什么我不允许在主要方面做以下事情?
Foo me;
Run Code Online (Sandbox Code Playgroud)
但我必须指明以下内容:
Foo<int> me;
Run Code Online (Sandbox Code Playgroud)
C++ 11引入了默认模板参数,现在它们对我完全理解是难以理解的.