Dynamic memory management

From cppreference.com
< cpp
 
 
Utilities library
Type support (basic types, RTTI, type traits)
Dynamic memory management
Error handling
Program utilities
Variadic functions
Date and time
Function objects
(C++11)
Relational operators
Pairs and tuples
(C++11)
Swap, forward and move
(C++14)
(C++11)
(C++11)
Type operations
(C++11)
(C++17)
 
 

Contents

[edit] Smart pointers

Smart pointers enable automatic, exception-safe, object lifetime management.

Defined in header <memory>
Pointer categories
(C++11)
smart pointer with unique object ownership semantics
(class template)
(C++11)
smart pointer with shared object ownership semantics
(class template)
(C++11)
weak reference to an object managed by std::shared_ptr
(class template)
(until C++17)
smart pointer with strict object ownership semantics
(class template)
Helper classes
(C++11)
provides mixed-type owner-based ordering of shared and weak pointers
(class template)
allows an object to create a shared_ptr referring to itself
(class template)
(C++11)
exception thrown when accessing a weak_ptr which refers to already destroyed object
(class)
default deleter for unique_ptr
(class template)

[edit] Allocators

Allocators are class templates encapsulating memory allocation strategy. This allows generic containers to decouple memory management from the data itself.

Defined in header <memory>
the default allocator
(class template)
provides information about allocator types
(class template)
tag type used to select allocator-aware constructor overloads
(class)
an object of type std::allocator_arg_t used to select allocator-aware constructors
(constant)
checks if the specified type supports uses-allocator construction
(class template)
Defined in header <scoped_allocator>
implements multi-level allocator for multi-level containers
(class template)

[edit] Uninitialized storage

Several utilities are provided to create and access raw storage

Defined in header <memory>
copies a range of objects to an uninitialized area of memory
(function template)
copies a number of objects to an uninitialized area of memory
(function template)
copies an object to an uninitialized area of memory
(function template)
copies an object to an uninitialized area of memory
(function template)
an iterator that allows standard algorithms to store results in uninitialized memory
(class template)
obtains uninitialized storage
(function template)
frees uninitialized storage
(function template)

[edit] Garbage collector support

Defined in header <memory>
declares that an object can not be recycled
(function)
declares that an object can be recycled
(function template)
declares that a memory area does not contain traceable pointers
(function)
cancels the effect of std::declare_no_pointers
(function)
lists pointer safety models
(class)
returns the current pointer safety model
(function)

[edit] Miscellaneous

Defined in header <memory>
provides information about pointer-like types
(class template)
(C++11)
obtains actual address of an object, even if the & operator is overloaded
(function template)
(C++11)
aligns a pointer in a buffer
(function)

[edit] C-style memory management

Includes e.g. std::malloc, std::free

[edit] Low level memory management

Includes e.g. operator new , operator delete , std::set_new_handler