Iros
 
Loading...
Searching...
No Matches
uninitialized_default_construct_n.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>
15 constexpr auto operator()(Out out, meta::IteratorSSizeType<Out> n) const -> Out {
17 return container::next(out, n);
18 }
19
20 for (; n > 0; --n, ++out) {
21 util::default_construct_at(util::addressof(*out));
22 }
23 return out;
24 }
25 };
26}
27
29}
30
31namespace di {
33}
Definition operations.h:27
Definition sequence.h:13
Definition sequence.h:12
constexpr auto next
Definition next.h:35
constexpr auto uninitialized_default_construct_n
Definition uninitialized_default_construct_n.h:28
decltype(container::iterator_ssize_type(types::in_place_type< meta::RemoveCVRef< T > >)) IteratorSSizeType
Definition iterator_ssize_type.h:8
constexpr auto default_construct_at
Definition default_construct_at.h:27
Definition zstring_parser.h:9
Definition uninitialized_default_construct_n.h:12