|
|
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)[edit] |
(C++11) | smart pointer with shared object ownership semantics (class template)[edit] |
(C++11) | weak reference to an object managed bystd::shared_ptr (class template)[edit] |
(deprecated in C++11)(removed in C++17) | smart pointer with strict object ownership semantics (class template)[edit] |
Helper classes | |
(C++11) | provides mixed-type owner-based ordering of shared and weak pointers (class template)[edit] |
(C++26) | provides owner-based hashing for shared and weak pointers (class)[edit] |
(C++26) | provides mixed-type owner-based equal comparisons of shared and weak pointers (class)[edit] |
(C++11) | allows an object to create ashared_ptr referring to itself(class template)[edit] |
(C++11) | exception thrown when accessing aweak_ptr which refers to already destroyed object(class)[edit] |
(C++11) | default deleter forunique_ptr (class template)[edit] |
Smart pointer adaptors(since C++23) | |
(C++23) | interoperates with foreign pointer setters and resets a smart pointer on destruction (class template)[edit] |
(C++23) | creates anout_ptr_t with an associated smart pointer and resetting arguments(function template)[edit] |
(C++23) | interoperates with foreign pointer setters, obtains the initial pointer value from a smart pointer, and resets it on destruction (class template)[edit] |
(C++23) | creates aninout_ptr_t with an associated smart pointer and resetting arguments(function template)[edit] |
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)[edit] | |
(C++11) | provides information about allocator types (class template)[edit] |
(C++23) | records the address and the actual size of storage allocated byallocate_at_least (class template)[edit] |
(C++11) | a tag used to select allocator-aware constructors (tag)[edit] |
(C++11) | checks if the specified type supports uses-allocator construction (class template)[edit] |
prepares the argument list matching the flavor of uses-allocator construction required by the given type (function template)[edit] | |
(C++20) | creates an object of the given type by means of uses-allocator construction (function template)[edit] |
creates an object of the given type at specified memory location by means of uses-allocator construction (function template)[edit] | |
Defined in header <scoped_allocator> | |
(C++11) | implements multi-level allocator for multi-level containers (class template)[edit] |
Defined in header <memory_resource> | |
Defined in namespace std::pmr | |
(C++17) | an allocator that supports run-time polymorphism based on thestd::pmr::memory_resource it is constructed with (class template)[edit] |
Memory resources implement memory allocation strategies that can be used bystd::pmr::polymorphic_allocator.
Defined in header <memory_resource> | |
Defined in namespace std::pmr | |
(C++17) | an abstract interface for classes that encapsulate memory resources (class)[edit] |
(C++17) | returns a static program-widestd::pmr::memory_resource that uses the globaloperator new andoperator delete to allocate and deallocate memory (function)[edit] |
(C++17) | returns a staticstd::pmr::memory_resource that performs no allocation (function)[edit] |
(C++17) | gets the defaultstd::pmr::memory_resource (function)[edit] |
(C++17) | sets the defaultstd::pmr::memory_resource (function)[edit] |
(C++17) | a set of constructor options for pool resources (class)[edit] |
(C++17) | a thread-safestd::pmr::memory_resource for managing allocations in pools of different block sizes (class)[edit] |
(C++17) | a thread-unsafestd::pmr::memory_resource for managing allocations in pools of different block sizes (class)[edit] |
(C++17) | a special-purposestd::pmr::memory_resource that releases the allocated memory only when the resource is destroyed (class)[edit] |
Defined in header <memory> | |
copies a range of objects to an uninitialized area of memory (function template)[edit] | |
(C++11) | copies a number of objects to an uninitialized area of memory (function template)[edit] |
copies an object to an uninitialized area of memory, defined by a range (function template)[edit] | |
copies an object to an uninitialized area of memory, defined by a start and a count (function template)[edit] | |
(C++17) | moves a range of objects to an uninitialized area of memory (function template)[edit] |
(C++17) | moves a number of objects to an uninitialized area of memory (function template)[edit] |
constructs objects bydefault-initialization in an uninitialized area of memory, defined by a range (function template)[edit] | |
constructs objects bydefault-initialization in an uninitialized area of memory, defined by a start and a count (function template)[edit] | |
constructs objects byvalue-initialization in an uninitialized area of memory, defined by a range (function template)[edit] | |
constructs objects byvalue-initialization in an uninitialized area of memory, defined by a start and a count (function template)[edit] | |
(C++17) | destroys an object at a given address (function template)[edit] |
(C++17) | destroys a range of objects (function template)[edit] |
(C++17) | destroys a number of objects in a range (function template)[edit] |
(C++20) | creates an object at a given address (function template)[edit] |
C++20 providesconstrained uninitialized memory algorithms that accept range arguments or iterator-sentinel pairs.
Defined in header <memory> | |
Defined in namespace std::ranges | |
specifies some operations on iterators, sentinels and ranges are non-throwing (exposition-only concept*) | |
(C++20) | copies a range of objects to an uninitialized area of memory (algorithm function object)[edit] |
(C++20) | copies a number of objects to an uninitialized area of memory (algorithm function object)[edit] |
(C++20) | copies an object to an uninitialized area of memory, defined by a range (algorithm function object)[edit] |
(C++20) | copies an object to an uninitialized area of memory, defined by a start and a count (algorithm function object)[edit] |
(C++20) | moves a range of objects to an uninitialized area of memory (algorithm function object)[edit] |
(C++20) | moves a number of objects to an uninitialized area of memory (algorithm function object)[edit] |
constructs objects bydefault-initialization in an uninitialized area of memory, defined by a range (algorithm function object)[edit] | |
constructs objects bydefault-initialization in an uninitialized area of memory, defined by a start and count (algorithm function object)[edit] | |
constructs objects byvalue-initialization in an uninitialized area of memory, defined by a range (algorithm function object)[edit] | |
constructs objects byvalue-initialization in an uninitialized area of memory, defined by a start and a count (algorithm function object)[edit] | |
(C++20) | destroys an object at a given address (algorithm function object)[edit] |
(C++20) | destroys a range of objects (algorithm function object)[edit] |
(C++20) | destroys a number of objects in a range (algorithm function object)[edit] |
(C++20) | creates an object at a given address (algorithm function object)[edit] |
Defined in header <memory> | |
implicitly creates objects in given storage with the object representation reused (function template)[edit] |
Defined in header <memory> | |
(C++26) | a wrapper containing dynamically-allocated object with value-like semantics (class template)[edit] |
(C++26) | a polymorphic wrapper containing dynamically-allocated object with value-like semantics (class template)[edit] |
Defined in header <memory> | |
(C++11) | provides information about pointer-like types (class template)[edit] |
(C++20) | obtains a raw pointer from a pointer-like type (function template)[edit] |
(C++11) | obtains actual address of an object, even if the& operator is overloaded(function template)[edit] |
(C++11) | aligns a pointer in a buffer (function)[edit] |
(C++20) | informs the compiler that a pointer is aligned (function template)[edit] |
(C++26) | checks whether the pointer points to an object whose alignment has at least the given value (function template)[edit] |
Includes e.g.operator new,operator delete,std::set_new_handler.
Defined in header <new> |
Includes e.g.std::malloc,std::free.
Defined in header <cstdlib> |
Several utilities are provided to create and access raw storage.
Defined in header <memory> | |
(deprecated in C++17)(removed in C++20) | an iterator that allows standard algorithms to store results in uninitialized memory (class template)[edit] |
(deprecated in C++17)(removed in C++20) | obtains uninitialized storage (function template)[edit] |
(deprecated in C++17)(removed in C++20) | frees uninitialized storage (function template)[edit] |
Defined in header <memory> | |
(C++11)(removed in C++23) | declares that an object can not be recycled (function)[edit] |
(C++11)(removed in C++23) | declares that an object can be recycled (function template)[edit] |
(C++11)(removed in C++23) | declares that a memory area does not contain traceable pointers (function)[edit] |
(C++11)(removed in C++23) | cancels the effect ofstd::declare_no_pointers (function)[edit] |
(C++11)(removed in C++23) | lists pointer safety models (enum)[edit] |
(C++11)(removed in C++23) | returns the current pointer safety model (function)[edit] |