Mercurial > hg > vamp-build-and-test
diff DEPENDENCIES/generic/include/boost/range/adaptor/sliced.hpp @ 101:c530137014c0
Update Boost headers (1.58.0)
author | Chris Cannam |
---|---|
date | Mon, 07 Sep 2015 11:12:49 +0100 |
parents | 2665513ce2d3 |
children |
line wrap: on
line diff
--- a/DEPENDENCIES/generic/include/boost/range/adaptor/sliced.hpp Fri Sep 04 12:01:02 2015 +0100 +++ b/DEPENDENCIES/generic/include/boost/range/adaptor/sliced.hpp Mon Sep 07 11:12:49 2015 +0100 @@ -14,6 +14,7 @@ #include <boost/range/adaptor/argument_fwd.hpp> #include <boost/range/size_type.hpp> #include <boost/range/iterator_range.hpp> +#include <boost/range/concepts.hpp> namespace boost { @@ -34,7 +35,8 @@ public: template<typename Rng, typename T, typename U> sliced_range(Rng& rng, T t, U u) - : base_t(boost::make_iterator_range(rng, t, u - boost::size(rng))) + : base_t(boost::next(boost::begin(rng), t), + boost::next(boost::begin(rng), u)) { } }; @@ -43,6 +45,9 @@ inline sliced_range<RandomAccessRange> slice( RandomAccessRange& rng, std::size_t t, std::size_t u ) { + BOOST_RANGE_CONCEPT_ASSERT(( + RandomAccessRangeConcept<RandomAccessRange>)); + BOOST_ASSERT( t <= u && "error in slice indices" ); BOOST_ASSERT( static_cast<std::size_t>(boost::size(rng)) >= u && "second slice index out of bounds" ); @@ -54,6 +59,9 @@ inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const RandomAccessRange>::type > slice( const RandomAccessRange& rng, std::size_t t, std::size_t u ) { + BOOST_RANGE_CONCEPT_ASSERT(( + RandomAccessRangeConcept<const RandomAccessRange>)); + BOOST_ASSERT( t <= u && "error in slice indices" ); BOOST_ASSERT( static_cast<std::size_t>(boost::size(rng)) >= u && "second slice index out of bounds" ); @@ -65,6 +73,9 @@ inline sliced_range<RandomAccessRange> operator|( RandomAccessRange& r, const sliced& f ) { + BOOST_RANGE_CONCEPT_ASSERT(( + RandomAccessRangeConcept<RandomAccessRange>)); + return sliced_range<RandomAccessRange>( r, f.t, f.u ); } @@ -72,6 +83,9 @@ inline sliced_range<const RandomAccessRange> operator|( const RandomAccessRange& r, const sliced& f ) { + BOOST_RANGE_CONCEPT_ASSERT(( + RandomAccessRangeConcept<const RandomAccessRange>)); + return sliced_range<const RandomAccessRange>( r, f.t, f.u ); }