Ticket #4572: make_iterator_range_with_size.diff

File make_iterator_range_with_size.diff, 957 bytes (added by Kyle Lutz <kyle.r.lutz@…>, 10 years ago)

Patch for Boost.Range implementing make_iterator_range(begin, size)

  • include/boost/range/iterator_range_core.hpp

    diff --git a/include/boost/range/iterator_range_core.hpp b/include/boost/range/iterator_range_core.hpp
    index 60c7670..6f92895 100644
    a b namespace boost  
    532532            return iterator_range<IteratorT>( Begin, End );
    533533        }
    534534
     535        /*!
     536            Construct an \c iterator_range from an iterator and a size.
     537
     538            \param Begin A begin iterator
     539            \param N Size of the range
     540            \return iterator_range object
     541        */
     542        template< typename IteratorT >
     543        inline iterator_range< IteratorT >
     544        make_iterator_range( IteratorT Begin, std::size_t N )
     545        {
     546            IteratorT End = Begin;
     547            std::advance( End, N );
     548            return iterator_range<IteratorT>( Begin, End );
     549        }
     550
    535551#ifdef BOOST_NO_FUNCTION_TEMPLATE_ORDERING
    536552
    537553        template< typename Range >