Когда я компилирую код С++ с Visual С++ 9 с "уровнем предупреждения 4", выполните следующие действия:
while( true ) {
//loop body with break on certain condition
}
и следующее:
for( ; true; ) {
//same loop body
}
оба триггера C4127: conditional expression is constant
, но следующее:
for( ; ; ) {
//same loop body
}
компилируется без предупреждения.
Почему это различие, особенно между вторым и третьим вариантами?