summaryrefslogtreecommitdiff
path: root/boost/range/adaptor/copied.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/range/adaptor/copied.hpp')
-rw-r--r--boost/range/adaptor/copied.hpp34
1 files changed, 22 insertions, 12 deletions
diff --git a/boost/range/adaptor/copied.hpp b/boost/range/adaptor/copied.hpp
index f4cf2d13af..f7dfbcd846 100644
--- a/boost/range/adaptor/copied.hpp
+++ b/boost/range/adaptor/copied.hpp
@@ -1,6 +1,6 @@
// Boost.Range library
//
-// Copyright Thorsten Ottosen, Neil Groves 2006 - 2008. Use, modification and
+// Copyright Thorsten Ottosen, Neil Groves 2006. Use, modification and
// distribution is subject to the Boost Software License, Version
// 1.0. (See accompanying file LICENSE_1_0.txt or copy at
// http://www.boost.org/LICENSE_1_0.txt)
@@ -15,6 +15,7 @@
#include <boost/range/adaptor/sliced.hpp>
#include <boost/range/size_type.hpp>
#include <boost/range/iterator_range.hpp>
+#include <boost/range/concepts.hpp>
namespace boost
{
@@ -29,25 +30,34 @@ namespace boost
std::size_t u;
};
- template< class CopyableRandomAccessRng >
- inline CopyableRandomAccessRng
- operator|( const CopyableRandomAccessRng& r, const copied& f )
+ template<class CopyableRandomAccessRange>
+ inline CopyableRandomAccessRange
+ operator|(const CopyableRandomAccessRange& r, const copied& f)
{
+ BOOST_RANGE_CONCEPT_ASSERT((
+ RandomAccessRangeConcept<const CopyableRandomAccessRange>));
+
iterator_range<
- BOOST_DEDUCED_TYPENAME range_iterator<const
- CopyableRandomAccessRng>::type >
- temp( adaptors::slice( r, f.t, f.u ) );
- return CopyableRandomAccessRng( temp.begin(), temp.end() );
+ BOOST_DEDUCED_TYPENAME range_iterator<
+ const CopyableRandomAccessRange
+ >::type
+ > temp(adaptors::slice(r, f.t, f.u));
+
+ return CopyableRandomAccessRange(temp.begin(), temp.end());
}
template<class CopyableRandomAccessRange>
inline CopyableRandomAccessRange
copy(const CopyableRandomAccessRange& rng, std::size_t t, std::size_t u)
{
+ BOOST_RANGE_CONCEPT_ASSERT((
+ RandomAccessRangeConcept<const CopyableRandomAccessRange>));
+
iterator_range<
- BOOST_DEDUCED_TYPENAME range_iterator<const
- CopyableRandomAccessRange>::type> temp(
- adaptors::slice(rng, t, u));
+ BOOST_DEDUCED_TYPENAME range_iterator<
+ const CopyableRandomAccessRange
+ >::type
+ > temp(adaptors::slice(rng, t, u));
return CopyableRandomAccessRange( temp.begin(), temp.end() );
}
@@ -55,4 +65,4 @@ namespace boost
}
-#endif
+#endif // include guard