使用 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
?如果没有,为什么不存在?
这里的最小例子。