奇怪的条件语法

Sha*_*hai 2 c++ syntax for-loop conditional-statements

我遇到了for一个非常不寻常的条件下面的循环

int main( int argc, const char* argv[] ) {
    for ( int i = 0 ; i < ( 10, 20 ) ; i++ ) {
        cout << i << endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

此源代码已成功编译.它i使用0到19之间的值执行循环(10表达式(10, 20)似乎对迭代次数没有影响).

我的问题:
这个条件语法是什么?为什么不导致编译错误?

编辑:
更大的图片:这个问题始于一个错误,原始条件应该是i < std::min( <expr A>, <expr B> )由于某种原因我省略了std::min.

所以,我想知道为什么代码首先编译.现在我看到这个bug是一种合法的(虽然没用)语法.

谢谢!

not*_*row 7

是的comma operator.它评估表达式的两侧,并返回正确的表达式.

所以,表达式(10, 20)什么都不做,但返回'20'.

也可以看看