Boost.Range - removed unnecessary code from the sliced adaptor.

Added a unit test to test the use of a non-member function as a transform functor and composition of strided, sliced and transformed range adaptors.

[SVN r61404]
This commit is contained in:
Neil Groves
2010-04-19 11:45:27 +00:00
parent a1cb3d9795
commit 4641e2e69d
3 changed files with 68 additions and 19 deletions

View File

@ -38,17 +38,6 @@ namespace boost
return boost::make_iterator_range( rng, t, u - boost::size(rng) );
}
template< class RandomAccessRange >
inline iterator_range< BOOST_DEDUCED_TYPENAME range_iterator<const RandomAccessRange>::type >
slice( const RandomAccessRange& rng, std::size_t t, std::size_t u )
{
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" );
return boost::make_iterator_range( rng, t, u - boost::size(rng) );
}
template< class RandomAccessRange >
inline iterator_range<
BOOST_DEDUCED_TYPENAME range_iterator<RandomAccessRange>::type >
@ -57,14 +46,6 @@ namespace boost
return adaptors::slice( r, f.t, f.u );
}
template< class RandomAccessRange >
inline iterator_range<
BOOST_DEDUCED_TYPENAME range_iterator<const RandomAccessRange>::type >
operator|( const RandomAccessRange& r, const sliced& f )
{
return adaptors::slice( r, f.t, f.u );
}
} // namespace adaptors
} // namespace boost