逗号操作符必须是左结合的吗?

Does the comma operator have to be left-associative?

本文关键字:结合 操作符      更新时间:2023-10-16

根据这个优先级表,逗号操作符是左结合的。即将a, b, c解析为(a, b), c。这是必须的吗?a, (b, c)不会有完全相同的行为吗?

由于存在可重载的operator,,所以不存在相同的行为。a, (b, c)可以调用不同于(a, b), c的重载

逗号操作符具有从左到右的结合性。用逗号分隔的两个表达式从左到右求值。总是对左操作数求值,并且在对右操作数求值之前完成所有副作用。

逗号可以在某些上下文中用作分隔符,例如函数参数列表。不要混淆逗号作为分隔符和作为操作符的用法;这两种用法完全不同。

http://msdn.microsoft.com/en-us/library/zs06xbxh.aspx