Difference between revisions of "cpp/memory/polymorphic allocator/deallocate object"
From cppreference.com
< cpp | memory | polymorphic allocator
m (non-template -> fully-specialized) |
m (→See also) |
||
(6 intermediate revisions by 5 users not shown) | |||
Line 2: | Line 2: | ||
{{cpp/memory/polymorphic_allocator/navbar}} | {{cpp/memory/polymorphic_allocator/navbar}} | ||
− | {{ddcl | since=c++20 |1= | + | {{ddcl|since=c++20|1= |
− | template <class U> | + | template< class U > |
void deallocate_object( U* p, std::size_t n = 1 ); | void deallocate_object( U* p, std::size_t n = 1 ); | ||
}} | }} | ||
− | Deallocates the storage pointed to by {{ | + | Deallocates the storage pointed to by {{c|p}}, which must have been allocated from a {{lc|std::pmr::memory_resource}} {{c|x}} that compares equal to {{c|*resource()}}, using {{c|x.allocate(n * sizeof(U), alignof(U))}}, typically through a call to {{c|allocate_object<U>(n)}}. |
− | + | ||
− | + | ||
+ | Equivalent to {{c|deallocate_bytes(p, n * sizeof(U), alignof(U));}}. | ||
===Parameters=== | ===Parameters=== | ||
{{par begin}} | {{par begin}} | ||
− | {{par | p | pointer to memory to deallocate }} | + | {{par|p|pointer to memory to deallocate}} |
− | {{par | n | number of objects of type U the memory was for | + | {{par|n|number of objects of type U the memory was for}} |
{{par end}} | {{par end}} | ||
Line 22: | Line 21: | ||
===Notes=== | ===Notes=== | ||
− | This function was introduced for use with the fully-specialized allocator {{c|std::polymorphic_allocator<>}}, but it may be useful in any specialization. | + | This function was introduced for use with the fully-specialized allocator {{c|std::pmr::polymorphic_allocator<>}}, but it may be useful in any specialization. |
===See also=== | ===See also=== | ||
{{dsc begin}} | {{dsc begin}} | ||
− | {{dsc inc | cpp/memory/polymorphic_allocator/dsc deallocate_bytes | + | {{dsc inc|cpp/memory/polymorphic_allocator/dsc deallocate_bytes}} |
− | + | {{dsc inc|cpp/memory/polymorphic_allocator/dsc delete_object}} | |
− | {{dsc inc | cpp/memory/polymorphic_allocator/dsc delete_object}} | + | {{dsc inc|cpp/memory/allocator traits/dsc deallocate}} |
− | {{dsc inc | cpp/memory/allocator traits/dsc deallocate}} | + | {{dsc inc|cpp/memory/memory resource/dsc deallocate}} |
− | {{dsc inc | cpp/memory/memory resource/dsc deallocate}} | + | |
{{dsc end}} | {{dsc end}} | ||
− | {{langlinks|ja|zh}} | + | {{langlinks|es|ja|ru|zh}} |
Latest revision as of 02:10, 19 July 2023
template< class U > void deallocate_object( U* p, std::size_t n = 1 ); |
(since C++20) | |
Deallocates the storage pointed to by p, which must have been allocated from a std::pmr::memory_resource x that compares equal to *resource(), using x.allocate(n * sizeof(U), alignof(U)), typically through a call to allocate_object<U>(n).
Equivalent to deallocate_bytes(p, n * sizeof(U), alignof(U));.
Contents |
[edit] Parameters
p | - | pointer to memory to deallocate |
n | - | number of objects of type U the memory was for |
[edit] Exceptions
Throws nothing.
[edit] Notes
This function was introduced for use with the fully-specialized allocator std::pmr::polymorphic_allocator<>, but it may be useful in any specialization.
[edit] See also
(C++20) |
free raw memory obtained from allocate_bytes (public member function) |
(C++20) |
destroys and deallocates an object (public member function) |
[static] |
deallocates storage using the allocator (public static member function of std::allocator_traits<Alloc> )
|
deallocates memory (public member function of std::pmr::memory_resource )
|