Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Тернарная операция. Почему справа налево? ведь слева направо же! / 3 сообщений из 3, страница 1 из 1
29.06.2017, 16:36
    #39479827
Charles Weyland
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тернарная операция. Почему справа налево? ведь слева направо же!
В документации сказано, что у некоторых операций, среди которых
+=
?:
ассоциативность справа налево.

На счёт += всё понятно - сначала вычисляется правый операнд, потом левый.
А вот с ?: вообще не понятно! Ведь вычисляется же сначала самый левый операнд и только потом средний либо правый! При этом везде в документации сказано, что ассоциативность справа налево. Как так понимать?
...
Рейтинг: 0 / 0
29.06.2017, 16:40
    #39479831
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тернарная операция. Почему справа налево? ведь слева направо же!
Сомневаешься - расставляй скобки.
Вопрос только в том, куды бечь, если будет какая-нибудь такая хренатень
Код: plaintext
1.
условие ? оператор : оператор условие ? оператор : оператор

Лично я считаю, что вместо чтения таблиц приоритетов надо сделать реверс-инжиринг и, таки, расставить скобки или вообще переписать.
...
Рейтинг: 0 / 0
30.06.2017, 11:30
    #39480264
kealon(Ruslan)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тернарная операция. Почему справа налево? ведь слева направо же!
Charles WeylandНа счёт += всё понятно - сначала вычисляется правый операнд, потом левый.
неправильная логика: ассоциативность операторов с приоритетами и порядок вычисления входящих в них операндов в общем случае это разные вещи. Первое - это всего лишь порядок вызова функций

н-р, правая ассоциативность как в си
a + b + c -> +(a, +(b,c))

второе - порядок вычисления аргументов после "расстановки скобок" он может быть и слева направо и наоборот

оператор ?: формально без определённых допущений к бинарным не относится
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Тернарная операция. Почему справа налево? ведь слева направо же! / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]