I just discovered that at one point, the C++11 draft had std::begin/std::end overloads for std::pair that allowed treating a pair of i
std::begin
std::end
std::pair
You can use boost::make_iterator_range. It constructs an iterator_range with begin() and end() methods. boost::make_iterator_range can accept std::pair of iterators.
boost::make_iterator_range
begin()
end()