Skip to content

A lightweight, single-header C++ Arena Allocator with automatic destructor management

License

Notifications You must be signed in to change notification settings

baselsaad/Arena

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Arena Memory Allocator

A lightweight, single-header C++ Arena Allocator with automatic destructor management.

Side project to refresh my C++ memory.

Disclaimer

  • Pre-allocates a fixed block of memory
  • Alignment
  • Not thread-safe
  • Automatic destructor on Reset() or ~Arena()
  • O(1) allocations
  • O(n) destruction on reset

Usage

#include "Arena.h"

MemoryManagement::Arena arena(ARENA_MB * 4); // 4 MB arena
MyType* obj = arena.AllocateObj<MyType>(arg1, arg2);
float* data = arena.AllocateRaw<float>(256); // 256 elements
arena.Reset();

About

A lightweight, single-header C++ Arena Allocator with automatic destructor management

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages