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: 32.7 [re.regex], 32.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.


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: