抑制代码内的“未使用参数”警告

问题描述 投票:0回答:2

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

我的第一个方法是:

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

其中定义如下:

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

这不起作用。经过一番研究后,我发现在 C++ 中我可以做到:

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

这完美地解决了警告问题,但现在......

mouseReleaseEvent()
根本不再被触发。 所以这对我来说也不起作用。

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

c++ qt macros
2个回答
9
投票

解决方案#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...
}

4
投票

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

void RenderGraphFrame::mouseReleaseEvent(QMouseEvent*)
{
  // Your code
}
© www.soinside.com 2019 - 2024. All rights reserved.