我刚刚移到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());
,
运算符评估左侧,并舍弃结果。那不是你想要的。您需要将这两个测试与&&
(或||
)结合使用。