Dynamic memory management

From Cppreference

< cpp
Jump to: navigation, search

Contents

[edit] Low level memory management

[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>
allocator
the default allocator
(class template)
allocator_traits (C++11)
provides information about allocator types
(class template)
allocator_arg_t (C++11)
tag type used to select allocator-aware constructor overloads
(class)
allocator_arg (C++11)
an object of type std::allocator_arg_t used to select allocator-aware constructors
(constant)
uses_allocator (C++11)
identifies allocator-aware types
(class template)
Defined in header <scoped_allocator>
scoped_allocator_adaptor (C++11)
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>
uninitialized_copy
copies a range of objects to an uninitialized area of memory
(function template)
uninitialized_copy_n (C++11)
copies a number of objects to an uninitialized area of memory
(function template)
uninitialized_fill
copies an object to an uninitialized area of memory
(function template)
uninitialized_fill_n
copies an object to an uninitialized area of memory
(function template)
raw_storage_iterator
an iterator that allows standard algorithms to store results in uninitialized memory
(class template)
get_temporary_buffer
obtains uninitialized storage
(function template)
return_temporary_buffer
frees uninitialized storage
(function template)

[edit] Smart pointers

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

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

[edit] Garbage collector support

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

[edit] Miscellaneous

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

[edit] C library