我有一个用例,我想处理包含在 a 中的元素,boost::variant
而不考虑其类型。
有没有办法在不知道元素类型的情况下获取指向variant
数据的指针?
我有一个用例,我想处理包含在 a 中的元素,boost::variant
而不考虑其类型。
有没有办法在不知道元素类型的情况下获取指向variant
数据的指针?
你可以写一个访问者来做到这一点:
typedef boost::variant<T1,T2,T3> my_variant;
void foo(my_variant v) {
struct get_pointer: boost::static_visitor<void *> {
template<class T>
void *operator()(T &element) const
{
return &element
}
};
get_pointer vis;
void *data = boost::apply_visitor(vis, v);
}