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.
Автор: Андрей Тарасевич    Оценить