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

标签 c++ qt macros

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

我的第一个方法是:

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...
}

关于c++ - 抑制代码内部的 "unused parameter"警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31473551/

相关文章:

c++ - 模糊定时器(边界内随机)(Arduino)

c++ - 检查对象数组中的 'null' 槽

你能帮我写一个可以自行打印的短代码吗?

macros - 是否可以将以下 lisp 宏编写为函数?

有人可以解释这个宏定义吗?

c++ - boost::unique_lock 和 boost::shared_lock 用于读写锁

c++ - vector 的小字符串优化?

c++ - QT 将来自 QDialog 的信号与主窗口连接起来

android - 使用 CrystaX 和 Qt 构建 android 应用程序 : java. lang.UnsatisfiedLinkError

c++ - 从函数访问 QTextEdit 小部件