8

使用 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?如果没有,为什么不存在?

这里的最小例子。

4

1 回答 1

8

有,不过叫boost::apply_visitor。它的相关行为boost::variant是 as std::visit's to std::variant

于 2019-05-17T09:53:14.320 回答