是否有 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
的行为相同。
对于 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
的行为相同。