Есть ли boost::visit, как std::visit, для boost::variant?

В C++14 я использую boost::variant как способ полиморфизма времени компиляции:

using MyType = boost::variant<A, B>;

Оба класса имеют метод sayHello(). Я хотел бы позвонить:

MyType obj = ...; // either A() or B()
boost::visit([](auto&& o) { o.sayHello();}, obj);

Я знаю способ static_visitor, но считаю его громоздким . Есть ли что-то вроде std::visit, которое я упустил? Если нет, то почему его не существует?

Минимальный пример здесь.


person The Quantum Physicist    schedule 17.05.2019    source источник
comment
Вы пытались использовать лямбда вместо статического посетителя в apply_visitor? IRC, он должен просто работать (тм).   -  person Dan M.    schedule 17.05.2019


Ответы (1)


Есть, но называется boost::apply_visitor. Его поведение по отношению к boost::variant такое же, как от std::visit к std::variant.

person StoryTeller - Unslander Monica    schedule 17.05.2019