В 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
, но я нахожу это громоздким. Есть ли boost::visit
как std::visit
, который я пропускаю? Если нет, то почему его не существует?
Минимальный пример здесь .