[section:copied copied]

[table
    [[Syntax] [Code]]
    [[Pipe] [`rng | boost::adaptors::copied(n, m)`]]
    [[Function] [`boost::adaptors::copy(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:] __random_access_range__
* [*Returned Range Category:] __random_access_range__

[section:copied_example copied 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;
}
``
[endsect]

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


