NG>Объясните каким правилом разруливается ситуация сравнения знаковых/беззнаковых целых в следующем примере:
Сравнения знакового и беззнакового делается как беззнаковое. Т.е. знаковое значение приводится к беззнаковому типу.
NG> int i = -1;
NG> unsigned int ui = 10;
NG> if (i < ui)
NG> {
NG> std::cout << "WOW" << std::endl;
NG> }
NG> else
NG> {
NG> std::cout << "BAD" << std::endl;
NG> }
NG>На VC6 SP4 сравнение в данном примере всегда беззнаковое, и результат сравнения всегда false
Разумеется, false. '-1' после приведения к 'unsigned int' в VC6 — это 4294967295, что больше, чем 10.