copy_backward.qbk 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. [/
  2. Copyright 2010 Neil Groves
  3. Distributed under the Boost Software License, Version 1.0.
  4. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
  5. /]
  6. [section:copy_backward copy_backward]
  7. [heading Prototype]
  8. ``
  9. template<class BidirectionalRange, class BidirectionalOutputIterator>
  10. BidirectionalOutputIterator
  11. copy_backward(const BidirectionalRange& source_rng,
  12. BidirectionalOutputIterator out_it);
  13. ``
  14. [heading Description]
  15. `copy_backward` copies all elements from `source_rng` to the range `[out_it - distance(source_rng), out_it)`.
  16. The values are copied in reverse order. The return value is `out_it - distance(source_rng)`.
  17. Note well that unlike all other standard algorithms `out_it` denotes the *end* of the output sequence.
  18. [heading Definition]
  19. Defined in the header file `boost/range/algorithm/copy_backward.hpp`
  20. [heading Requirements]
  21. * `BidirectionalRange` is a model of __bidirectional_range__ Concept.
  22. * `OutputIterator` is a model of the `OutputIteratorConcept`.
  23. * The `value_type` of __bidirectional_range__ Concept is convertible to a type in `OutputIterator`'s set of value types.
  24. [heading Precondition:]
  25. * `out_it` is not an iterator within the `source_rng`.
  26. * `[out_it, out_it + distance(source_rng))` is a valid range.
  27. [heading Complexity]
  28. Linear. Exactly `distance(source_rng)` assignments are performed.
  29. [endsect]