在代码中抑制"unused parameter"警告

Supressing "unused parameter" warning inside of code

本文关键字:unused 警告 parameter 代码      更新时间:2023-10-16

我想在代码中抑制未执行的参数警告。

我的第一个方法是:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *UNUSED(event))
{
    MousebuttonHold = false;
    updateGL();
    return;
}

,其中定义如下:

#define UNUSED(NAME) USE_IT(NAME)
#define USE_IT(NAME) UNUSED_ ## NAME

这不起作用。在做了一些SO研究之后,我发现在c++中我可以这样做:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent)
{/*...*/}

好吧,这解决了问题的警告完美,但现在....mouseReleaseEvent()不再被触发了。所以这也不适合我。

那么我还有什么其他方法可以用代码变体来抑制警告呢?

解决方案#1 -未命名参数:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *)

解决方案# 2 - Qt Q_UNUSED宏:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
    Q_UNUSED(event)
    // Your code...
}
实际上,这个宏是为下一个方法定义的

方案#3 - C方式:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
    (void)event;
    // Your code...
}

这是因为QWidget::mouseReleaseEvent的参数是一个指针。必须保留*:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent*)
{
  // Your code
}