Iros
 
Loading...
Searching...
No Matches
destroy.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::UninitInputIterator It, concepts::UninitSentinelFor<It> Sent>
15 constexpr auto operator()(It it, Sent sent) const -> It {
17 container::advance(it, sent);
18 return it;
19 } else {
20 for (; it != sent; ++it) {
21 util::destroy_at(util::addressof(*it));
22 }
23 return it;
24 }
25 }
26
27 template<concepts::UninitInputContainer Con>
29 constexpr auto operator()(Con&& container) const -> meta::BorrowedIterator<Con> {
31 }
32 };
33}
34
35constexpr inline auto destroy = detail::DestroyFunction {};
36}
37
38namespace di {
40}
Definition operations.h:57
Definition sequence.h:13
Definition sequence.h:12
constexpr auto destroy
Definition destroy.h:35
constexpr auto end
Definition end.h:47
constexpr auto advance
Definition advance.h:62
constexpr auto begin
Definition begin.h:44
Conditional< concepts::BorrowedContainer< Con >, ContainerIterator< Con >, container::Dangling > BorrowedIterator
Definition borrowed_iterator.h:11
constexpr auto destroy_at
Definition destroy_at.h:24
Definition zstring_parser.h:9