Specialized <memory> algorithms
From cppreference.com
In the algorithm library, some function templates construct and destroy objects in uninitialized memory buffers. They are declared and defined in <memory>.
Helper templates
obtains a void* pointer to a given lvalue object(exposition-only function template*) | |
(C++17) |
derefences an iterator, and moves the result if it is an lvalue (exposition-only function template*) |
(C++20)(C++20)(C++26)(C++26) |
specifies some operations on iterators are non-throwing (exposition-only concept*) |
(C++20)(C++26) |
specifies some operations on sentinels are non-throwing (exposition-only concept*) |
(C++20)(C++20)(C++26)(C++26)(C++26) |
specifies some operations on ranges are non-throwing (exposition-only concept*) |
Object (batch) construction
Defined in header
<memory> | |
(C++20) |
creates an object at a given address (function template & algorithm function object) |
(C++20) |
|
| copies a range of objects to an uninitialized area of memory (function template & algorithm function object) | |
(C++20) |
|
(C++11) |
copies a number of objects to an uninitialized area of memory (function template & algorithm function object) |
(C++20) |
|
| copies an object to an uninitialized area of memory, defined by a range (function template & algorithm function object) | |
(C++20) |
|
| copies an object to an uninitialized area of memory, defined by a start and a count (function template & algorithm function object) | |
(C++20) |
|
(C++17) |
moves a range of objects to an uninitialized area of memory (function template & algorithm function object) |
(C++20) |
|
(C++17) |
moves a number of objects to an uninitialized area of memory (function template & algorithm function object) |
(C++20) |
|
| constructs objects by default-initialization in an uninitialized area of memory, defined by a range (function template & algorithm function object) | |
| constructs objects by default-initialization in an uninitialized area of memory, defined by a start and a count (function template & algorithm function object) | |
| constructs objects by value-initialization in an uninitialized area of memory, defined by a range (function template & algorithm function object) | |
| constructs objects by value-initialization in an uninitialized area of memory, defined by a start and a count (function template & algorithm function object) | |
Object (batch) destruction
Defined in header
<memory> | |
(C++17) |
destroys an object at a given address (function template & algorithm function object) |
(C++20) |
|
(C++17) |
destroys a range of objects (function template & algorithm function object) |
(C++20) |
|
(C++17) |
destroys a number of objects in a range (function template & algorithm function object) |
(C++20) |
|