Flow
Documentation for the Flow C++ Library
Loading...
Searching...
No Matches
flow_memory_resource.h
Go to the documentation of this file.
1#pragma once
2#include <cstddef>
3
4namespace flow {
5
10 public:
11 virtual ~MemoryResource() = default;
12
13 void* allocate(std::size_t bytes, std::size_t alignment = alignof(std::max_align_t)) {
14 return allocateImp(bytes, alignment);
15 }
16
17 void deallocate(void* address, std::size_t bytes, std::size_t alignment = alignof(std::max_align_t)) {
18 deallocateImp(address, bytes, alignment);
19 }
20
21 protected:
22 virtual void* allocateImp(std::size_t bytes, std::size_t alignment) = 0;
23 virtual void deallocateImp(void* address, std::size_t bytes, std::size_t alignment) = 0;
24 };
25}
A memory resource holder interface for the PolymorphicAllocator. Responsible for allocate and dealloc...
virtual void deallocateImp(void *address, std::size_t bytes, std::size_t alignment)=0
void * allocate(std::size_t bytes, std::size_t alignment=alignof(std::max_align_t))
void deallocate(void *address, std::size_t bytes, std::size_t alignment=alignof(std::max_align_t))
virtual void * allocateImp(std::size_t bytes, std::size_t alignment)=0
virtual ~MemoryResource()=default