# Which Dynamic Libraries to Use

The template `scalable_allocator<T>` requires the Intel® Threading Building Blocks (Intel® TBB) scalable memory allocator library as described in Scalable Memory Allocator. It does not require the Intel® TBB general library, and can be used independently of the rest of Intel® TBB.

The templates `tbb_allocator<T>` and `cache_aligned_allocator<T>` use the scalable allocator library if it is present otherwise it reverts to using `malloc` and `free`. Thus, you can use these templates even in applications that choose to omit the scalable memory allocator library.

The rest of Intel® Threading Building Blocks can be used with or without the Intel® TBB scalable memory allocator library.

Templates and Libraries
Template | Requirements | Notes
--- | --- | ---
`scalable_allocator<T>` | Intel® Threading Building Blocks scalable memory allocator library. See Scalable Memory Allocator. |
`tbb_allocator<T>` `cache_aligned_allocator<T>` |  | Uses the scalable allocator library if it is present, otherwise it reverts to using `malloc` and `free`.

Parent topic: Memory Allocation

## See Also

Scalable Memory Allocator