[alg.reverse] (original) (raw)

template<class BidirectionalIterator, class OutputIterator> constexpr OutputIterator reverse_copy(BidirectionalIterator first, BidirectionalIterator last, OutputIterator result);template<class ExecutionPolicy, class BidirectionalIterator, class ForwardIterator> ForwardIterator reverse_copy(ExecutionPolicy&& exec, BidirectionalIterator first, BidirectionalIterator last, ForwardIterator result);template<[bidirectional_iterator](iterator.concept.bidir#concept:bidirectional%5Fiterator "24.3.4.12 Concept bidirectional_­iterator [iterator.concept.bidir]") I, [sentinel_for](iterator.concept.sentinel#concept:sentinel%5Ffor "24.3.4.7 Concept sentinel_­for [iterator.concept.sentinel]")<I> S, [weakly_incrementable](iterator.concept.winc#concept:weakly%5Fincrementable "24.3.4.4 Concept weakly_­incrementable [iterator.concept.winc]") O> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_­copyable [alg.req.ind.copy]")<I, O> constexpr ranges::reverse_copy_result<I, O> ranges::reverse_copy(I first, S last, O result);template<[bidirectional_range](range.refinements#concept:bidirectional%5Frange "25.4.6 Other range refinements [range.refinements]") R, [weakly_incrementable](iterator.concept.winc#concept:weakly%5Fincrementable "24.3.4.4 Concept weakly_­incrementable [iterator.concept.winc]") O> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_­copyable [alg.req.ind.copy]")<iterator_t<R>, O> constexpr ranges::reverse_copy_result<borrowed_iterator_t<R>, O> ranges::reverse_copy(R&& r, O result);

template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_­access_­iterator [iterator.concept.random.access]") I, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<I> S,[random_access_iterator](iterator.concept.random.access#concept:random%5Faccess%5Fiterator "24.3.4.13 Concept random_­access_­iterator [iterator.concept.random.access]") O, [sized_sentinel_for](iterator.concept.sizedsentinel#concept:sized%5Fsentinel%5Ffor "24.3.4.8 Concept sized_­sentinel_­for [iterator.concept.sizedsentinel]")<O> OutS> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_­copyable [alg.req.ind.copy]")<I, O> ranges::reverse_copy_truncated_result<I, O> ranges::reverse_copy(Ep&& exec, I first, S last, O result, OutS result_last);template<[_execution-policy_](algorithms.parallel.defns#concept:execution-policy "26.3.1 Preamble [algorithms.parallel.defns]") Ep, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") R, [_sized-random-access-range_](range.refinements#concept:sized-random-access-range "25.4.6 Other range refinements [range.refinements]") OutR> requires [indirectly_copyable](alg.req.ind.copy#concept:indirectly%5Fcopyable "24.3.7.3 Concept indirectly_­copyable [alg.req.ind.copy]")<iterator_t<R>, iterator_t<OutR>> ranges::reverse_copy_truncated_result<borrowed_iterator_t<R>, borrowed_iterator_t<OutR>> ranges::reverse_copy(Ep&& exec, R&& r, OutR&& result_r);