在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::visit这样的boost::visit是我遗漏的?如果不是,为什么它不存在?
最小示例here。
发布于 2019-05-17 17:53:14
有,但它被称为boost::apply_visitor。它相对于boost::variant的行为是as std::visit对std::variant的行为。
https://stackoverflow.com/questions/56183917
复制相似问题