Re: Вопрос по std::variant
От: Кодт Россия  
Дата: 06.06.25 23:21
Оценка: 2 (1)
va>А можно ли сделать подобное для бинарных операций?
pva>p.s. Отвечу сам себе

Помнится, год или два назад тут поднимали тему — как написать полиморфного посетителя такого же вида.
Там есть некоторые интересные моменты по диспетчеризации.

Можно
— неупорядоченные перегрузки, выбор компилятором наилучшей подходящей
— — если есть неоднозначность (выбор среди нескольких наилучших) — давать ошибку компиляции
— — раздавать приоритеты
— — подсовывать дефолтные обработчики
— двойная диспетчеризация, то есть, выбор наилучшей по первому аргументу, затем по второму...
— упорядоченные перегрузки, выбор первой подходящей в списке

Идиома с наследованием — это изящно, но она содержит подводную граблю, с наследованием от одинаковых типов. В случае уникальных лямбд это, конечно, не проблема.

для связности:

https://rsdn.org/forum/cpp/8497841.1
Автор: Chorkov
Дата: 04.04.23


https://rsdn.org/forum/cpp/8554157.1
Автор: Кодт
Дата: 30.06.23


вроде бы ещё раньше обсуждали эти темы, но я так не упомню
Перекуём баги на фичи!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.