鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

函数模板定义中不应重复指定默认实参

错误信息

1
2
3
4
5
6
template <typename T = int>
void printSize(void);
template <typename T = int>
void printSize(void) {
  std::cout << sizeof(T) << std::endl;
}
1
2
3
4
5
6
error: template parameter redefines default argument
    3 | template <typename T = int>
      |                        ^
note: previous default template argument defined here
    1 | template <typename T = int>
      |                        ^

问题介绍

模板函数在声明时已经指定默认实参,则在模板函数定义时不应重复指定默认实参。

解决方案

  • 去除多余实参指定;
  • 使用clang-tidy工具可以识别该类问题并提供修改建议。