我刚转到 C++11 并注意到我的旧代码上有一些新警告:
ChinaminiC.cpp:70:76: warning: inequality comparison result unused [-Wunused-comparison]
for(std::vector<std::string>::const_iterator cit = _names.begin();
cit != _names.end(), i < _names.size();
cit++, i++)
ChinaminiC.cpp:70:76: note: use '|=' to turn this inequality comparison into an or-assignment
所指的不等式来自 cit != _names.end()
。如果这意味着不检查不等式条件,那就是一个问题(使用 i
的双重迭代是为了迭代与 _names
大小相同的参数)。给出的建议对我来说似乎是题外话。在 C++11 中,一个 for 循环中的两次迭代的语法是否发生了变化?
最佳答案
(cit != _names.end()) && (i < _names.size());
,
运算符计算左侧,并丢弃 结果。那不是你想要的。您需要将这两个测试与 &&
(或 ||
)结合起来。
关于c++ - 迁移到 C++11 时出现不等式比较结果未使用警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21203889/