Skip to main content

std::pmr::polymorphic_allocator<T>::polymorphic_allocator

// 1)
polymorphic_allocator() noexcept;
// 2)
polymorphic_allocator( const polymorphic_allocator& other ) = default;
// 3)
template< class U >
polymorphic_allocator( const polymorphic_allocator<U>& other ) noexcept;
// 4)
polymorphic_allocator( std::pmr::memory_resource* r );

Constructs a new polymorphic_allocator.

  1. Constructs a polymorphic_allocator using the return value of std::pmr::get_default_resource() as the underlying memory resource.
    2-3) Constructs a polymorphic_allocator using other.resource() as the underlying memory resource.
  2. Constructs a polymorphic_allocator using r as the underlying memory resource. This constructor provides an implicit conversion from std::pmr::memory_resource*.

Parameters

other - another polymorphic_allocator to copy from
r - pointer to the memory resource to use. May not be null.

Exceptions

  1. Throws nothing.

Notes

Copying a container using a polymorphic_allocator will not call the allocator's copy constructor. Instead, the new container will use the return value of select_on_container_copy_construction (a default-constructed polymorphic_allocator) as its allocator.

std::pmr::polymorphic_allocator<T>::polymorphic_allocator

// 1)
polymorphic_allocator() noexcept;
// 2)
polymorphic_allocator( const polymorphic_allocator& other ) = default;
// 3)
template< class U >
polymorphic_allocator( const polymorphic_allocator<U>& other ) noexcept;
// 4)
polymorphic_allocator( std::pmr::memory_resource* r );

Constructs a new polymorphic_allocator.

  1. Constructs a polymorphic_allocator using the return value of std::pmr::get_default_resource() as the underlying memory resource.
    2-3) Constructs a polymorphic_allocator using other.resource() as the underlying memory resource.
  2. Constructs a polymorphic_allocator using r as the underlying memory resource. This constructor provides an implicit conversion from std::pmr::memory_resource*.

Parameters

other - another polymorphic_allocator to copy from
r - pointer to the memory resource to use. May not be null.

Exceptions

  1. Throws nothing.

Notes

Copying a container using a polymorphic_allocator will not call the allocator's copy constructor. Instead, the new container will use the return value of select_on_container_copy_construction (a default-constructed polymorphic_allocator) as its allocator.