N4191 Предлагаемые складные выражения для C++. Определение было то, чтоАссоциативность сгиб-выражений
(args + ...)
является левая складка (т.е. (((a0 + a1) + a2) + ...)
, и что
(... + args)
является право раз (т.е. (... + (a8 + (a9 + a10)))
. Тем не менее, пересмотренный документ N4295 отменил определения слева и правые унарные складки.
Вопрос: что является обоснованием? Кажется более интуитивным (по крайней мере, когда вы привыкли к алфавитам слева направо) для оценки (args + ...)
слева направо.
я бы просто спросить Ричарда или Эндрю :) – SergeyA
я не знаю их обоснование, но мне '(... + арг)' выглядит подвыражении левой складки '(((... + a8) + a9) + a10) '. И аналогично '(args + ...)' выглядит как вспомогательное выражение правого сгиба '(a0 + (a1 + (a2 ...))). – user2079303
@ user2079303 Левая ассоциативность 'a + b + c' обычно определяется как (a + b) + c, вы используете противоположное – TemplateRex