28#ifndef MYSQL_ALLOCATORS_MEMORY_RESOURCE_H
29#define MYSQL_ALLOCATORS_MEMORY_RESOURCE_H
146 const auto &
object) {
147 if constexpr (
requires {
object.get_memory_resource(); }) {
148 return object.get_memory_resource();
Polymorphism-free memory resource class with custom allocator and deallocator functions.
Definition: memory_resource.h:88
void * Ptr_t
Definition: memory_resource.h:91
void * allocate(Size_t n) const
Allocate memory using the provided allocator.
Definition: memory_resource.h:113
void deallocate(Ptr_t p) const
Deallocate memory using the provided deallocator.
Definition: memory_resource.h:118
Deallocator_t get_deallocator() const
Return the deallocator.
Definition: memory_resource.h:121
Deallocator_t m_deallocator
The deallocator object.
Definition: memory_resource.h:136
std::function< void(Ptr_t)> Deallocator_t
Definition: memory_resource.h:93
Memory_resource(const Allocator_t &allocator, const Deallocator_t &deallocator)
Construct a new Memory_resource that uses the given allocator and deallocator.
Definition: memory_resource.h:101
static const Memory_resource & get_default()
Return const reference to a defult-constructed Memory_resource.
Definition: memory_resource.h:126
Memory_resource()
Construct a new Memory_resource that uses std::malloc and std::free.
Definition: memory_resource.h:106
std::function< Ptr_t(Size_t)> Allocator_t
Definition: memory_resource.h:92
std::size_t Size_t
Definition: memory_resource.h:90
Allocator_t m_allocator
The allocator object.
Definition: memory_resource.h:133
const char * p
Definition: ctype-mb.cc:1227
#define malloc(A)
Definition: lexyy.cc:914
#define free(A)
Definition: lexyy.cc:915
Definition: allocator.h:39
decltype(auto) get_memory_resource_or_default(const auto &object)
Return object.get_memory_resource(), if that function exists.
Definition: memory_resource.h:145
Define std::hash<Gtid>.
Definition: gtid.h:355
int n
Definition: xcom_base.cc:509