添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
天涯  ·  小红书 _RED - 应用详情页- ...·  2 年前    · 
文雅的数据线  ·  js ...·  2 年前    · 
帅气的匕首  ·  Architecture ...·  3 年前    · 

c++ default template arguments may not be used in partial specializations

这个错误信息是因为在 C++ 中,模板的默认参数只能在主模板中使用,而不能在部分特化中使用。

举个例子,如果你定义了一个带有默认模板参数的主模板:

template<typename T, typename U = int>
class MyClass {
   // ...

那么你不能在这个主模板的部分特化中再次使用默认参数,否则会出现上述错误:

template<typename T>
class MyClass<T, double> {  // 错误:不能在部分特化中使用默认参数
   // ...

为了解决这个问题,你需要在部分特化中显式地提供所有的模板参数,例如:

template<typename T>
class MyClass<T, double> {
   // 显式提供所有模板参数
   // ...

总之,如果你遇到了这个错误,就要检查一下你的模板定义是否在部分特化中使用了默认模板参数。如果有的话,就需要在部分特化中显式地提供所有模板参数。

  • Choice_
    5年前
  •