Подтвердить что ты не робот

Должен ли оператор запятой быть лево-ассоциативным?

В соответствии с эта таблица приоритетов, оператор запятая лево-ассоциативный, То есть a, b, c анализируется как (a, b), c. Это необходимость? Не было бы a, (b, c) иметь то же самое поведение?

4b9b3361

Ответ 1

Так как существует перегружаемый operator,, нет, это не то же поведение. a, (b, c) может вызвать разные перегрузки, чем (a, b), c.

Ответ 2

Оператор с запятой имеет ассоциативную ассоциацию слева направо. Два выражения, разделенные запятой, оцениваются слева направо. Левый операнд всегда оценивается, и все побочные эффекты завершаются до того, как будет оценен правый операнд.

Запятые могут использоваться в качестве разделителей в некоторых контекстах, таких как списки аргументов функций. Не путайте использование запятой в качестве разделителя с ее использованием в качестве оператора; эти два использования совершенно разные.

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