在代码内部禁止"未使用的参数"警告

dhe*_*ein 0 c++ macros qt

我想在代码中抑制未处理的参数警告.

我的第一个方法是:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *UNUSED(event))
{
    MousebuttonHold = false;
    updateGL();
    return;
}
Run Code Online (Sandbox Code Playgroud)

其定义如下:

#define UNUSED(NAME) USE_IT(NAME)
#define USE_IT(NAME) UNUSED_ ## NAME
Run Code Online (Sandbox Code Playgroud)

这没用.经过一些SO研究后,我发现用C++我可以做到:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent)
{/*...*/}
Run Code Online (Sandbox Code Playgroud)

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

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

kef*_*500 9

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

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *)
Run Code Online (Sandbox Code Playgroud)

解决方案#2 - Qt Q_UNUSED宏:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
    Q_UNUSED(event)
    // Your code...
}
Run Code Online (Sandbox Code Playgroud)

实际上,这个宏是下一个方法的定义:

解决方案#3 - C方式:

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent *event)
{
    (void)event;
    // Your code...
}
Run Code Online (Sandbox Code Playgroud)