boost::variant是否有类似于std::visit的boost::visit?

10

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

你尝试过在apply_visitor中使用lambda而不是静态访问者吗?IRC上说,这应该“只是工作”(tm)。 - Dan M.
1个回答

9

有一个叫做 boost::apply_visitor 的东西,它的行为与 std::visit 对于 std::variant 的行为相同,但是适用于 boost::variant


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接