di 0.1.0
Loading...
Searching...
No Matches
deallocate_one.h
Go to the documentation of this file.
1#pragma once
2
7#include "di/meta/vocab.h"
8#include "di/util/voidify.h"
11
12namespace di::container {
13namespace 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
26template<typename T>
27constexpr inline auto deallocate_one = detail::DeallocateOneFunction<T> {};
28}
29
30namespace di {
32}
Definition sequence.h:12
constexpr auto deallocate_one
Definition deallocate_one.h:27
Definition any_storable.h:9
constexpr auto deallocate
Definition deallocate.h:23
constexpr auto voidify
Definition voidify.h:13