6
私はstd::multimap
を持っていて、equal_range
からboost::iterator_range
を作成したいと思います。私は、ドキュメントでそれを行うための簡単な方法を発見したので、私は次のことを試してみました:イテレータのstd :: pairをboost :: iterator_rangeに変換する
typedef std::multimap<int, std::string> Map;
Map map;
...
boost::iterator_range<Map::iterator> r(map.equal_range(2));
驚くべきことに、それは(GCC 4.1.2を使用して)動作します。私はそれがどのように機能するのか不思議です。私はそれを行うiterator_range
コンストラクタのオーバーロードを見つけず、multimap::iterator_range
は明らかにBoost範囲を返す過負荷を持っていません。
基本的なイテレータ型をペアから推論する 'boost :: make_iterator_range'もあることに注意してください。 – alfC