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) |
(C++11) | 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) |
(C++11) | default deleter for unique_ptr (class template) |
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) | |
(C++11) | provides information about allocator types (class template) |
(C++11) | tag type used to select allocator-aware constructor overloads (class) |
(C++11) | an object of type std::allocator_arg_t used to select allocator-aware constructors (constant) |
(C++11) | checks if the specified type supports uses-allocator construction (class template) |
Defined in header <scoped_allocator> | |
(C++11) | implements multi-level allocator for multi-level containers (class template) |
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) | |
(C++11) | 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) |
Garbage collector support
Defined in header <memory> | |
---|---|
(C++11) | declares that an object can not be recycled (function) |
(C++11) | declares that an object can be recycled (function template) |
(C++11) | declares that a memory area does not contain traceable pointers (function) |
(C++11) | cancels the effect of std::declare_no_pointers (function) |
(C++11) | lists pointer safety models (class) |
(C++11) | returns the current pointer safety model (function) |
Miscellaneous
Defined in header <memory> | |
---|---|
(C++11) | 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) |
C-style memory management
Includes e.g. std::malloc
, std::free
.
Low level memory management
Includes e.g. operator new
, operator delete
, std::set_new_handler
.
Please login to continue.