const参照値型と同じマップ上のイテレータにポインタ値型とunordered_mapにイテレータを変換_children
の要素を反復処理することはできません。そのため、pair<char, ptr_type>
の代わりにpair<char, const Node&>
という型の要素を指すイテレータを作成する必要があります。私は以下のクラスを持っている
基本イテレータクラスを作成することは、手近な作業のために少し複雑すぎるようです。私はブーストイテレータを見て、私はtransform_iterator
が行く方法かもしれないと思うが、私はまだそれを動作させる方法を発見していない。
私はここにいますが、boost-iterators
で定義されているさまざまなイテレータの例をどこから見つけることができますか?各タイプのドキュメントには1つの例しかなく、私のニーズに合っているとは限りません(私はこのライブラリを初めて使用しています。
UPDATE:
error: no type named ‘type’ in ‘boost::mpl::eval_if<boost::is_same<boost::iterators::use_default, boost::iterators::use_default>, boost::result_of<const Node::Transformer(const std::pair<const char, std::unique_ptr<Node> >&)>, boost::mpl::identity<boost::iterators::use_default> >::f_ {aka struct boost::result_of<const Node::Transformer(const std::pair<const char, std::unique_ptr<Node> >&)>}’
typedef typename f_::type type;
['boost :: transform_iterator'](http://www.boost.org/doc/libs/1_53_0/libs/iterator/doc/transform_iterator.html)がそうすることができるはずです。または、これらの行に沿って独自のカスタムイテレータラッパーを記述することもできます。 –