Iros
 
Loading...
Searching...
No Matches
uninitialized_value_construct.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/meta/trivial.h"
7#include "di/util/addressof.h"
9
10namespace di::container {
11namespace detail {
13 template<concepts::UninitForwardIterator Out, concepts::UninitSentinelFor<Out> OutSent>
15 constexpr auto operator()(Out out, OutSent out_last) const -> Out {
16 for (; out != out_last; ++out) {
17 util::construct_at(util::addressof(*out));
18 }
19 return out;
20 }
21
22 template<concepts::UninitForwardContainer Out>
24 constexpr auto operator()(Out&& out) const -> meta::BorrowedIterator<Out> {
25 return (*this)(container::begin(out), container::end(out));
26 }
27 };
28}
29
31}
32
33namespace di {
35}
Definition operations.h:27
Definition sequence.h:13
Definition sequence.h:12
constexpr auto uninitialized_value_construct
Definition uninitialized_value_construct.h:30
constexpr auto end
Definition end.h:47
constexpr auto begin
Definition begin.h:44
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 uninitialized_value_construct.h:12