| Basic Allocation | The basic allocation interface | 
| Extended Functions | Extended functionality | 
| Aligned Allocation | Allocating aligned memory blocks | 
| Heap Allocation | First-class heaps that can be destroyed in one go | 
| Zero initialized re-allocation | The zero-initialized re-allocations are only valid on memory that was originally allocated with zero initialization too | 
| Typed Macros | Typed allocation macros | 
| Heap Introspection | Inspect the heap at runtime | 
| Runtime Options | Set runtime behavior | 
| Posix | mi_prefixed implementations of various Posix, Unix, and C++ allocation functions | 
| C++ wrappers | mi_prefixed implementations of various allocation functions that use C++ semantics on out-of-memory, generally callingstd::get_new_handlerand raising astd::bad_allocexception on failure |