Iros
 
Loading...
Searching...
No Matches
uninitialized_move.h
Go to the documentation of this file.
1#pragma once
2
7#include "di/util/addressof.h"
9
10namespace di::container {
11namespace detail {
13 template<concepts::InputIterator It, concepts::SentinelFor<It> Sent, concepts::UninitForwardIterator Out,
14 concepts::UninitSentinelFor<Out> OutSent>
16 constexpr auto operator()(It in, Sent in_last, Out out, OutSent out_last) const -> InOutResult<It, Out> {
17 for (; in != in_last && out != out_last; ++in, ++out) {
18 util::construct_at(util::addressof(*out), container::iterator_move(in));
19 }
20 return { util::move(in), util::move(out) };
21 }
22
23 template<concepts::InputContainer Con, concepts::UninitForwardContainer Out>
25 constexpr auto operator()(Con&& in, Out&& out) const
27 return (*this)(container::begin(in), container::end(in), container::begin(out), container::end(out));
28 }
29 };
30}
31
33}
34
35namespace di {
37}
Definition operations.h:11
Definition sequence.h:13
Definition sequence.h:12
constexpr auto iterator_move
Definition iterator_move.h:56
constexpr auto uninitialized_move
Definition uninitialized_move.h:32
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
IteratorRValue< ContainerIterator< T > > ContainerRValue
Definition container_rvalue.h:8
decltype(container::iterator_move(util::declval< T & >())) IteratorRValue
Definition iterator_rvalue.h:9
Conditional< concepts::BorrowedContainer< Con >, ContainerIterator< Con >, container::Dangling > BorrowedIterator
Definition borrowed_iterator.h:11
constexpr auto construct_at
Definition construct_at.h:27
Definition zstring_parser.h:9
Definition in_out_result.h:8
Definition uninitialized_move.h:12