为了编译我的 C++ 代码,我使用了-W
导致警告的标志:
警告:无符号表达式 < 0 的比较总是错误的
我相信这被认为是一个错误并已在 GCC 4.3 版本上修复,但我使用的是 GCC 4.1
这里明显有问题的代码:
void FieldGroup::generateCreateMessage (const ApiEvent::GroupData &data, omsgstream &result) const {
dblog << debug;
// Write out the data fields we care about, in the order they were specified
for (size_t index = 0; index < fields.size(); ++index) {
size_t esIndex = clsToES[index];
if (esIndex < 0 || esIndex >= data.fields.length()) {
ostringstream buf;
buf << "Invalid field " << index << " (index in ES data set " << esIndex << ", " << data.fields.length() << " fields returned)";
throw InvalidDataException (buf.str());
}
fields[index].writeData (data.fields[esIndex], result);
}
}
警告我得到:
dbtempl.cpp:在成员函数 'void ECONZ::FieldGroup::generateCreateMessage(const nz::co::econz::eventServer::ApiEvent::GroupData&, ECONZ::omsgstream&) const'中:dbtempl.cpp:480: 警告: 无符号表达式 < 0 的比较总是假的
我怎样才能阻止这些警告出现?我不想删除-W
标志。