cortex 0.0.1
Loading...
Searching...
No Matches
memory_resource.hpp
Go to the documentation of this file.
1#pragma once
2
3#include <cstddef>
4#include <memory>
5
6namespace cortex {
7
9public:
10 MemoryResource() = default;
11 MemoryResource(const MemoryResource&) = default;
15 virtual ~MemoryResource() = default;
16
17 void* Allocate(std::size_t bytes, std::size_t alignment = alignof(std::max_align_t)) {
18 return DoAllocate(bytes, alignment);
19 }
20
21 void Deallocate(void* p, std::size_t bytes, std::size_t alignment = alignof(std::max_align_t)) {
22 DoDeallocate(p, bytes, alignment);
23 }
24
25private:
26 virtual void* DoAllocate(std::size_t bytes, std::size_t alignment) = 0;
27 virtual void DoDeallocate(void* p, std::size_t bytes, std::size_t alignment) = 0;
28};
29
30using MemoryResourceSharedPtr = std::shared_ptr<MemoryResource>;
31
33
34} // namespace cortex
Definition memory_resource.hpp:8
MemoryResource & operator=(const MemoryResource &)=default
virtual ~MemoryResource()=default
MemoryResource(const MemoryResource &)=default
MemoryResource(MemoryResource &&)=default
MemoryResource & operator=(MemoryResource &&)=default
void * Allocate(std::size_t bytes, std::size_t alignment=alignof(std::max_align_t))
Definition memory_resource.hpp:17
void Deallocate(void *p, std::size_t bytes, std::size_t alignment=alignof(std::max_align_t))
Definition memory_resource.hpp:21
Definition base_coroutine.hpp:14
MemoryResourceSharedPtr GetDefaultMemoryResource()
std::shared_ptr< MemoryResource > MemoryResourceSharedPtr
Definition memory_resource.hpp:30