A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://en.cppreference.com/w/cpp/language/../memory/weak_ptr/../gc/../polymorphic_allocator.html below:

std::pmr::polymorphic_allocator - cppreference.com

std::pmr::polymorphic_allocator

template< class T >
class polymorphic_allocator;

(since C++17)
(until C++20) template< class T = std::byte >
class polymorphic_allocator;
(since C++20)

The class template std::pmr::polymorphic_allocator is an Allocator which exhibits different allocation behavior depending upon the std::pmr::memory_resource from which it is constructed. Since memory_resource uses runtime polymorphism to manage allocations, different container instances with polymorphic_allocator as their static allocator type are interoperable, but can behave as if they had different allocator types.

All specializations of polymorphic_allocator meet the allocator completeness requirements.

The polymorphic_allocator::construct member function does uses-allocator construction, so that the elements of a container using a polymorphic_allocator will use that same allocator for their own allocations. For example, a std::pmr::vector<std::pmr::string> will use the same memory_resource for the vector's storage and each string's storage.

For non-polymorphic allocators, similar propagation can be achieved with the help of std::scoped_allocator_adaptor.

[edit] Member types Member type definition value_type T [edit] Member functions constructs a polymorphic_allocator
(public member function) [edit]

(destructor)

(implicitly declared)

implicitly declared destructor
(public member function) [edit] copy assignment operator is deleted
(public member function) [edit] Public member functions allocate memory
(public member function) [edit] deallocate memory
(public member function) [edit] constructs an object in allocated storage
(public member function) [edit]

(deprecated in C++20)(undeprecated in C++26)

destroys an object in allocated storage
(public member function) [edit] allocate raw aligned memory from the underlying resource
(public member function) [edit] free raw memory obtained from allocate_bytes
(public member function) [edit] allocates raw memory suitable for an object or an array
(public member function) [edit] frees raw memory obtained by allocate_object
(public member function) [edit] allocates and constructs an object
(public member function) [edit] destroys and deallocates an object
(public member function) [edit] create a new polymorphic_allocator for use by a container's copy constructor
(public member function) [edit] returns a pointer to the underlying memory resource
(public member function) [edit] [edit] Non-member functions [edit] Notes

polymorphic_allocator does not propagate on container copy assignment, move assignment, or swap. As a result, move assignment of a polymorphic_allocator-using container can throw, and swapping two polymorphic_allocator-using containers whose allocators do not compare equal results in undefined behavior.

[edit] See also an abstract interface for classes that encapsulate memory resources
(class) [edit]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4