---
title: 函数模板定义中不应重复指定默认实参
description: "```"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0094_0.html
sourcePath: /source/zh/kunpengdevkithistory/bisheng/hist-bisheng/kunpengbisheng_06_0094_0.html
indexId: a492c38085fffcd9a996fd2b9ad78c1279eb8f11f8b3cf54fc04ecd3e7ca0ad482
---
# 函数模板定义中不应重复指定默认实参

#### 错误信息

```
template <typename T = int>
void printSize(void);
template <typename T = int>
void printSize(void) {
  std::cout << sizeof(T) << std::endl;
}
```

```
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工具可以识别该类问题并提供修改建议。
