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

4261. P1206R7 broke uses of container adaptors with old custom sequence containers

Section: 27.4.3.8.2 [string.find] Status: New Submitter: Jiang An Opened: 2025-05-07 Last modified: 2025-05-18

Priority: Not Prioritized

View other active issues in [string.find].

View all other issues in [string.find].

View all issues with New status.

Discussion:

P1206R7 added some requirements for sequence containers, including program-defined ones.

These requirements mean that if a custom C++20 sequence container type has no newly required member functions added in C++23 mode, it is no longer a sequence container, and uses of it with std::stack, std::queue, or std::priority_queue possibly have undefined behavior or make the program ill-formed. Additionally, some users want to use C++23 flat container adaptors with old sequence containers (llvm/llvm-project#136656), it is unclear whether such uses are intentionally rejected.

Perhaps the requirements on from_range_t constructor, insert_range and assign_range should be made optional, although these operations should have specified semantics whenever being well-formed in immediate contexts.

Proposed resolution: