# Memory Allocation

[memory_allocation]

This section describes classes and functions related to memory allocation.

## Allocators

The oneAPI Threading Building Blocks (oneTBB) library implements several classes that meet the allocator requirements from the [allocator.requirements] ISO C++ Standard section.

- tbb_allocator
- scalable_allocator
- cache_aligned_allocator

## Memory Resources

Starting from C++17, the standard library provides a `std::pmr::polymorphic_allocator` class that allocates memory from a supplied memory resource (see the [mem.poly.allocator.class] ISO/IEC 14882:2017 section). Class `std::pmr::memory_resource` is an abstract interface for user-side implementation of different allocation strategies. For details, see the [mem.res.class] ISO/IEC 14882:2017 standard section.

oneTBB provides a set of `std::pmr::memory_resource` implementations.

- cache_aligned_resource
- scalable_memory_resource

## Library Functions

- C Interface to Scalable Allocator