当我使用Visual C++ 9编译C ++代码时,启用“警告级别4”,出现以下情况:
while( true ) {
//loop body with break on certain condition
}
以及以下内容:
for( ; true; ) {
//same loop body
}
两者都会触发C4127: conditional expression is constant
警告,但以下代码不会:
for( ; ; ) {
//same loop body
}
编译无警告。
为什么会有这种差异,特别是在第二和第三个变体之间?
#pragma warning
禁用 C4127,特别是在使用 boost 时。 - Alexandre C.