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.

### 3261. `regex` components' `noexcept` annotations appear broken for POCMA or throwing `BidirectionalIterator`

Section: 30.7 [re.regex], 30.9 [re.results] Status: New Submitter: Billy O'Neal III Opened: 2019-08-17 Last modified: 2019-10-07

Priority: 3

View all other issues in [re.regex].

View all issues with New status.

Discussion:

`std::basic_regex` and `std::match_results` have `noexcept` move construction, and `std::basic_regex` has `noexcept` move assignment, but both of them have throwing swaps. We probably need an Expects: or something to say that `BidirectionalIterator` doesn't throw through these operations. We probably also need `match_results::operator=` to respect `propagate_on_container_move_assignment` (and maybe the copy ctor respect `propagate_on_container_copy_assignment`).

[2019-09-02; Tim Song comments]

The issue is related to LWG 2490.

[2019-10 Priority set to 3 after reflector discussion]

Proposed resolution: