如何解决警告 "ignoring return value of function declared with 'warn_unused_result' attribute"
How to resolve warning "ignoring return value of function declared with 'warn_unused_result' attribute"
我正在用 QT 编写测试自动化。我正在使用 QTest::qWaitFor
等待事件循环切换到 UI 中的另一个选项卡。
QTest::qWaitFor([tabs, ¤tIdx]() {
currentIdx = tabs->currentIndex();
return currentIdx == 1;
}, 5000);
每次我使用这样的构造时都会出现以下警告:
ignoring return value of function declared with 'warn_unused_result' attribute
我花了好几个小时处理它,但没有结果。我认为问题在于函数使用 lambda 表达式返回值的方式。有什么解决方法吗?
问题不在于 lambda,而是您的 用法:
您应该 use/check return qWaitFor
的值(以了解是否发生超时):
if (QTest::qWaitFor([tabs, ¤tIdx]() {
currentIdx = tabs->currentIndex();
return currentIdx == 1;
}, 5000)) {
// OK.
// ...
} else {
// timeout.
// ...
}
我正在用 QT 编写测试自动化。我正在使用 QTest::qWaitFor
等待事件循环切换到 UI 中的另一个选项卡。
QTest::qWaitFor([tabs, ¤tIdx]() {
currentIdx = tabs->currentIndex();
return currentIdx == 1;
}, 5000);
每次我使用这样的构造时都会出现以下警告:
ignoring return value of function declared with 'warn_unused_result' attribute
我花了好几个小时处理它,但没有结果。我认为问题在于函数使用 lambda 表达式返回值的方式。有什么解决方法吗?
问题不在于 lambda,而是您的 用法:
您应该 use/check return qWaitFor
的值(以了解是否发生超时):
if (QTest::qWaitFor([tabs, ¤tIdx]() {
currentIdx = tabs->currentIndex();
return currentIdx == 1;
}, 5000)) {
// OK.
// ...
} else {
// timeout.
// ...
}