Iros
Loading...
Searching...
No Matches
deallocate_one.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/container/allocator/allocate.h
"
4
#include "
di/container/allocator/allocation_result.h
"
5
#include "
di/container/allocator/allocator.h
"
6
#include "
di/container/allocator/std_allocator.h
"
7
#include "
di/meta/vocab.h
"
8
#include "
di/util/voidify.h
"
9
#include "
di/vocab/expected/as_fallible.h
"
10
#include "
di/vocab/expected/try_infallible.h
"
11
12
namespace
di::container
{
13
namespace
detail
{
14
template
<
typename
T>
15
struct
DeallocateOneFunction
{
16
constexpr
void
operator()
(
concepts::Allocator
auto
& allocator, T* pointer)
const
{
17
if
consteval
{
18
return
std::allocator<T>().deallocate(pointer, 1);
19
}
20
21
return
di::deallocate
(allocator,
di::voidify
(pointer),
sizeof
(T),
alignof
(T));
22
}
23
};
24
}
25
26
template
<
typename
T>
27
constexpr
inline
auto
deallocate_one
=
detail::DeallocateOneFunction<T>
{};
28
}
29
30
namespace
di
{
31
using
container::deallocate_one
;
32
}
allocation_result.h
allocator.h
as_fallible.h
di::concepts::Allocator
Definition
allocator.h:9
allocate.h
di::container::detail
Definition
sequence.h:13
di::container
Definition
sequence.h:12
di::container::deallocate_one
constexpr auto deallocate_one
Definition
deallocate_one.h:27
di
Definition
zstring_parser.h:9
di::deallocate
constexpr auto deallocate
Definition
deallocate.h:23
di::voidify
constexpr auto voidify
Definition
voidify.h:13
std_allocator.h
di::container::detail::DeallocateOneFunction
Definition
deallocate_one.h:15
di::container::detail::DeallocateOneFunction::operator()
constexpr void operator()(concepts::Allocator auto &allocator, T *pointer) const
Definition
deallocate_one.h:16
try_infallible.h
vocab.h
voidify.h
libs
di
include
di
container
allocator
deallocate_one.h
Generated by
1.13.0