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

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

10

Решение

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

13

Другие решения

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

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

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

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector