gpt4 book ai didi

c++ - Q_UNUSED 相对于省略参数名称有什么好处?

转载 作者:搜寻专家 更新时间:2023-10-31 02:08:08 25 4
gpt4 key购买 nike

与在函数中省略参数名称相比,使用 Q_UNUSED 宏有什么好处?

Q_UNUSED 版本:

void f(int x) {
Q_UNUSED(x);
}

省略版本:

void f(int) {
}

我认为有指南说要以某种方式使用它,但我没有找到任何关于它的信息there .接下来的想法是,有一天标准中不存在省略,但编译器不会在省略任何标准(98、03、11、14、17)的变量名时抛出错误。那既然没用又多出一个写错的地方,Qt为什么要用这个宏呢?

最佳答案

Q_UNUSED 可以防止编译器在不止一种参数未处理的情况下 react 过度。此外,我们可以实例化一个对象,而无需对其进行任何调用:

MyClass myObject;
Q_UNUSED(myObject)

对我来说最常见的情况是 QMutexLocker:

void qtFunc()
{
// and no other line of code in that function accesses `lock`
QMutexLocker lock(&m_mutex);
// it just protects this scope with some object shared with other threads
Q_UNUSED(lock) // shut up, compiler
}

并且理论上(可能经常)我们会遇到类似的情况,当我们最初使用堆栈上的对象编写代码然后决定通过在我们弄清楚它的最终用途之前。我个人不喜欢重新访问代码中这些微不足道的“时刻”来修复一些警告。所以当代码未完成时,我左右使用 Q_UNUSED。

附言当然,编译器发出“未使用变量”警告这一事实取决于编译器的选项。

关于c++ - Q_UNUSED 相对于省略参数名称有什么好处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47890461/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com