Описание тега apply-visitor
boost::apply_visitor - Позволяет во время компиляции проверять типобезопасное применение данного посетителя к содержимому данного варианта, гарантируя, что посетитель обрабатывает все типы.
Поведение apply_visitor зависит от количества аргументов, с которыми он работает (т. Е. Кроме посетителя). Функция ведет себя следующим образом:
- Перегрузки, принимающие один операнд, вызывают унарный оператор вызова данного посетителя для содержимого данного варианта операнда.
- Перегрузки, принимающие два операнда, вызывают бинарный оператор вызова функции данного посетителя для содержимого данного варианта операндов.
- Перегрузка, принимающая только посетителя, возвращает объект универсальной функции, который принимает один или два аргумента и вызывает apply_visitor, используя эти аргументы и посетителя, таким образом, ведя себя так, как указано выше. (Такое поведение особенно полезно, например, когда нужно оперировать каждым элементом последовательности вариантов объектов, используя стандартный алгоритм библиотеки.)