c++11 范围循环可能会分离 Qt 容器

问题描述

使用 Qt Creator 为 MinGW 构建工具包编辑 C++11 代码

每次我们遍历一个 Qt 容器时,它都会给出这个警告:

Loop through Qt object

有没有更好的方法来写这个不会触发警告?

Using C++11 range-based for loop correctly in Qt 不是答案 - 请不要标记为重复! 这个问题建议使用 qAsConst;但这似乎没有帮助:

for (const QString &field : qAsConst(fields.keys()))
// - "Call to deleted function qAsConst"

for (const QString &field : qAsConst(fields).keys())
// - no effect,obvIoUsly - it was already const

for (const QString &field : std::as_const(fields.keys()))
// - "Call to deleted function as_const"

for (QJsonObject::const_iterator field = fields.constBegin(); field != fields.constEnd(); ++field)
// works,but a bit long-winded

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)