0

我有一个用例,我想处理包含在 a 中的元素,boost::variant而不考虑其类型。

有没有办法在不知道元素类型的情况下获取指向variant数据的指针?

4

1 回答 1

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);
 }
于 2013-11-09T04:39:04.663 回答