避免使用默认参数警告“未引用的形式参数”

时间:2015-04-14 05:40:37

标签: c++

这是我的功能

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

编译器提供warning C4100: 'iDispCompIndex': unreferenced formal parameter

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

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

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

2 个答案:

答案 0 :(得分:2)

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

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

您还可以通过将值转换为void来故意忽略该值:

(void)status;

答案 1 :(得分:1)

至少有两个选择:

1)使用宏UNREFERENCED_PARAMETER

2)使用#pragma关闭此部分代码的警告:

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