抑制代码内部的 "unused parameter" 警告

Supressing "unused parameter" warning inside of code

我想在代码中抑制未使用的参数警告。

我的第一个方法是:

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() 根本不再触发。 所以这对我也不起作用。

那么我还有哪些其他方法可以通过代码变体来抑制警告?

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

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

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

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *)

解决方案 #2 – Qt Q_UNUSED 宏:

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

实际上,这个宏是define下一个方法:

解决方案 #3 – C 方式:

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