相关疑难解决方法(0)

函数模板的默认模板参数

为什么默认模板参数只允许在类模板上?为什么我们不能在成员函数模板中定义默认类型?例如:

struct mycclass {
  template<class T=int>
  void mymember(T* vec) {
    // ...
  }
};
Run Code Online (Sandbox Code Playgroud)

相反,C++强制只允许在类模板上使用默认模板参数.

c++ templates

183
推荐指数
3
解决办法
6万
查看次数

模板默认参数

如果我被允许做以下事情:

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引入了默认模板参数,现在它们对我完全理解是难以理解的.

c++ templates

134
推荐指数
4
解决办法
6万
查看次数

标签 统计

c++ ×2

templates ×2