В соответствии с эта таблица приоритетов, оператор запятая лево-ассоциативный, То есть a, b, c анализируется как (a, b), c. Это необходимость? Не было бы a, (b, c) иметь то же самое поведение?
Должен ли оператор запятой быть лево-ассоциативным?
Ответ 1
Так как существует перегружаемый operator,, нет, это не то же поведение. a, (b, c) может вызвать разные перегрузки, чем (a, b), c.
Ответ 2
Оператор с запятой имеет ассоциативную ассоциацию слева направо. Два выражения, разделенные запятой, оцениваются слева направо. Левый операнд всегда оценивается, и все побочные эффекты завершаются до того, как будет оценен правый операнд.
Запятые могут использоваться в качестве разделителей в некоторых контекстах, таких как списки аргументов функций. Не путайте использование запятой в качестве разделителя с ее использованием в качестве оператора; эти два использования совершенно разные.