This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++20 status.

### 3037. `polymorphic_allocator` and incomplete types

Section: 20.4.3 [mem.poly.allocator.class] Status: C++20 Submitter: Casey Carter Opened: 2017-11-15 Last modified: 2021-02-25

Priority: 2

View all other issues in [mem.poly.allocator.class].

View all issues with C++20 status.

Discussion:

`polymorphic_allocator` can trivially support the allocator completeness requirements (16.4.4.6.2 [allocator.requirements.completeness]) just as does the default allocator. Doing so imposes no implementation burden, and enables `pmr::forward_list`, `pmr::list`, and `pmr::vector` to support incomplete types as do the non-`pmr` equivalents.

[2018-01; Priority set to 2 after mailing list discussion]

[2018-08-23 Batavia Issues processing]

Status to Tentatively Ready

[2018-11, Adopted in San Diego]

Proposed resolution:

Wording relative to N4700.

1. Add a new paragraph in 20.4.3 [mem.poly.allocator.class] after para 1:

   > 1 A specialization of class template `pmr::polymorphic_allocator` conforms to the `Allocator` requirements [...]

   > -?- All specializations of class template `pmr::polymorphic_allocator` satisfy the allocator completeness requirements (16.4.4.6.2 [allocator.requirements.completeness]).