Iros
 
Loading...
Searching...
No Matches
deallocate_many.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>
16 constexpr void operator()(concepts::Allocator auto& allocator, T* pointer, usize count) const {
17 if consteval {
18 return std::allocator<T>().deallocate(pointer, count);
19 }
20
21 // NOTE: since the allocate must have succeeded, this multiplication won't overflow
22 return di::deallocate(allocator, di::voidify(pointer), sizeof(T) * count, alignof(T));
23 }
24 };
25}
26
27template<typename T>
29}
30
31namespace di {
33}
Definition allocator.h:9
Definition sequence.h:13
Definition sequence.h:12
constexpr auto count
Definition count.h:37
constexpr auto deallocate_many
Definition deallocate_many.h:28
size_t usize
Definition integers.h:33
Definition zstring_parser.h:9
constexpr auto deallocate
Definition deallocate.h:23
constexpr auto voidify
Definition voidify.h:13
Definition deallocate_many.h:15
constexpr void operator()(concepts::Allocator auto &allocator, T *pointer, usize count) const
Definition deallocate_many.h:16