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.

### 3512. Incorrect exception safety guarantee for unordered containers

Section: 20.14.19 [unord.hash] Status: New Submitter: Jonathan Wakely Opened: 2020-12-28 Last modified: 2021-01-29

Priority: 3

View all other issues in [unord.hash].

View all issues with New status.

Discussion:

See this editorial issue.

20.14.19 [unord.hash] p5.4 ends with "shall not throw an exception unless `hash<Key>` is a program-defined specialization that depends on at least one program-defined type."

This seems wrong, because `hash<optional<T>>` is not a program-defined specialization, but it might throw if `hash<T>` can throw. There are also other partial specializations of `std::hash` defined in the standard library but that depend on program-defined specializations and so can throw.

[2021-01-29; reflector prioritization]

Set priority to 3 following reflector discussions. It was pointed out that this wording could be simplified if 3513 changes the definition of program-defined type.

Proposed resolution: