У меня есть std::multimap
, и я хочу создать boost::iterator_range
из equal_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.