A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://cplusplus.github.io/LWG/issue3498 below:

Issue 3498: Inconsistent noexcept-specifiers for basic_syncbuf

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

3498. Inconsistent noexcept-specifiers for basic_syncbuf

Section: 31.11.2.1 [syncstream.syncbuf.overview], 31.11.2.3 [syncstream.syncbuf.assign] Status: C++23 Submitter: Jonathan Wakely Opened: 2020-11-10 Last modified: 2023-11-22

Priority: 3

View all other issues in [syncstream.syncbuf.overview].

View all issues with C++23 status.

Discussion:

The synopsis in 31.11.2.1 [syncstream.syncbuf.overview] shows the move assignment operator and swap member as potentially throwing. The detailed descriptions in 31.11.2.3 [syncstream.syncbuf.assign] are noexcept.

Daniel: This mismatch is already present in the originally accepted paper P0053R7, so this is nothing that could be resolved editorially.

[2020-11-21; Reflector prioritization]

Set priority to 3 during reflector discussions.

[2021-05-22 Tim adds PR]

The move assignment is specified to call emit() which can throw, and there's nothing in the wording providing for catching/ignoring the exception, so it can't be noexcept. The swap needs to call basic_streambuf::swap, which isn't noexcept, so it shouldn't be noexcept either.

[2021-06-23; Reflector poll]

Set status to Tentatively Ready after eight votes in favour during reflector poll.

[2021-10-14 Approved at October 2021 virtual plenary. Status changed: Voting → WP.]

Proposed resolution:

This wording is relative to N4885.

  1. Modify 31.11.2.3 [syncstream.syncbuf.assign] as indicated:

    basic_syncbuf& operator=(basic_syncbuf&& rhs) noexcept;
    

    -1- Effects: […]

    -2- Postconditions: […] -3- Returns: […] -4- Remarks: […]
    void swap(basic_syncbuf& other) noexcept;
    

    -5- Preconditions: […]

    -6- Effects: […]

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4