0

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 に答える