Iros
 
Loading...
Searching...
No Matches
allocate.h
Go to the documentation of this file.
1#pragma once
2
5#include "di/meta/vocab.h"
6#include "di/types/prelude.h"
7
8namespace di::container {
9namespace detail {
11 template<typename A>
12 constexpr auto operator()(A& allocator, usize size, usize alignment) const
15 requires { allocator.allocate(size, alignment); })
16 {
18 return function::tag_invoke(*this, allocator, size, alignment);
19 } else {
20 return allocator.allocate(size, alignment);
21 }
22 }
23 };
24}
25
26constexpr inline auto allocate = detail::AllocateFunction {};
27}
28
29namespace di {
31}
Definition vocab.h:74
Definition tag_invoke.h:33
Definition sequence.h:13
Definition sequence.h:12
constexpr auto allocate
Definition allocate.h:26
constexpr auto size
Definition size.h:54
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
size_t usize
Definition integers.h:33
Definition zstring_parser.h:9
constexpr auto operator()(A &allocator, usize size, usize alignment) const -> concepts::MaybeFallible< AllocationResult<> > auto requires(concepts::TagInvocable< AllocateFunction, A &, usize, usize >||
Definition allocate.h:12