在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
的 boost::visit
,我是否遗漏了什么?如果没有,为什么不存在这样的功能?最小示例在此处。