删除函数定义中未使用的参数名称(编码标准)

Delete unused argument names in function definition(coding standards).

本文关键字:编码 标准 参数 定义 函数 未使用 删除      更新时间:2023-10-16

Herb Suttter c++编码标准说,删除函数中不使用的参数名是编写零警告程序的好做法。

的例子:

int increment(int number, int power=0){
   return number++;
}
应该

int increment(int number, int /*power*/=0){
   return number++;
}

如果power参数有"未使用变量警告"。这可以很好地用于程序(没有编译错误),所以新的函数定义将是

int increment(int number, int =0)

那么int=0对编译器意味着什么?

未命名的形式参数,默认值为0。

第一种情况(最流行)是function-declaration中的用法,类似于

int increment(int, int = 0);

和定义参数将被命名。

int increment(int number, int power)
{
   //
}

第二种情况是用于调试目的,或者用于一些尚未实现的功能,或者用于虚拟函数。

如果这是一个独立的函数,当然,您可以更改方法的签名,注释掉最后一个参数

int increment(int number/*, int power=0*/);

但是,您可能希望在以下情况下保持方法的签名不变:

  • 这是一个方法,它将覆盖在base中声明的方法类
  • 是你不想要的模块公共接口的一部分改变

另外,当您在函数声明中使用未命名参数的默认值时,以及以后在cpp文件中您仍然为该变量命名时,它可能会很有用。

// Forward declaration
int increment(int number, int =0);
// Somewhere in cpp file:
int increment(int number, int power)
  {
  return pow(number, power);
  }