# Boost.Range

## Range Adaptors

#### `copied`

>     rng | boost::adaptors::copied( n, m )

>     boost::make_copied_range( rng, n, m )

- Precondition: `0 <= n && n <= m && m < distance(rng)`
- Returns: A new `iterator_range` that holds the sliced range `[n,m)` of the original range.
- Range Category: RandomAccessRange

### Example

        #include <boost/range/adaptor/copied.hpp>
        #include <boost/range/algorithm/copy.hpp>
        #include <boost/assign.hpp>
        #include <algorithm>
        #include <iostream>
        #include <vector>

        int main(int argc, const char* argv[])
        {
            using namespace boost::assign;
            using namespace boost::adaptors;

            std::vector<int> input;
            input += 1,2,3,4,5,6,7,8,9,10;

            boost::copy(
                input | copied(1, 5),
                std::ostream_iterator<int>(std::cout, ","));

            return 0;
        }

This would produce the output: `2,3,4,5`

(C) Copyright Neil Groves 2009 (C) Copyright Thorsten Ottosen 2003-2004