避免使用默认参数警告'Unreferenced Formal Parameter'

Avoid warning 'Unreferenced Formal Parameter' with default argument

本文关键字:Formal Parameter Unreferenced 警告 默认 参数      更新时间:2023-10-16

这是我的函数

virtual int foo(bool status = false)
{
 return -1;
}

编译器给出warning C4100: 'iDispCompIndex': unreferenced formal parameter

我想通过这种方式解决这个问题

virtual int foo(bool)
{
 return -1;
}

在这种情况下,有没有办法指定参数的默认值? 因为继承的类可能需要这个

通常的方法是不命名参数,就像你说的:

virtual int foo(bool = false)
{
     return -1;
}

您还可以故意忽略某个值,将其强制转换为void

(void)status;

至少有两个选项:

1) 使用宏UNREFERENCED_PARAMETER

2) 使用 #pragma 关闭以下确切代码部分的警告:

#pragma warning( push )
#pragma warning( disable : 4100 )
virtual int foo(bool status = false)
{
 return -1;
}
#pragma warning( pop )