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

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

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

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

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

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


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