我有一个用例,我想处理boost::variant
中包含的元素而不考虑其类型。
有没有办法在不知道元素类型的情况下获取指向variant
数据的指针?
答案 0 :(得分:1)
您可以写访问者来执行此操作:
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);
}