是否有 boost::visit 像 std::visit,对于 boost::variant?

Is there boost::visit like std::visit, for 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 way, but I find it cumbersome. Is there a boost::visit like std::visit?如果没有,为什么不存在?

最小示例here

有,不过叫做boost::apply_visitor。它相对于 boost::variant 的行为与 std::visit 相对于 std::variant 的行为相同。