Created on 2021-10-07.00:00:00 last changed 13 months ago
Proposed resolution:
This wording is relative to N4892.
Modify [syncstream.syncbuf.special] as indicated:
template<class charT, class traits, class Allocator> void swap(basic_syncbuf<charT, traits, Allocator>& a, basic_syncbuf<charT, traits, Allocator>& b)noexcept;-1- Effects: Equivalent to a.swap(b).
[ 2022-02-10; Jens comments ]
The desired fix was applied editorially while applying
P2450 C++ Standard Library Issues to be moved in Virtual Plenary, Oct. 2021[ 2022-02-10 Approved at February 2022 virtual plenary. Status changed: Tentatively Ready → WP. ]
[ 2021-10-14; Reflector poll ]
Set status to Tentatively Ready after seven votes in favour during reflector poll.
LWG 3498 fixes the inconsistent noexcept-specifiers for member functions of basic_syncbuf, but the proposed resolution in LWG 3498 seems to miss the non-member swap, which also has inconsistent noexcept-specifier: [syncstream.syncbuf.special] says it's noexcept, while [syncstream.syn] says it's not.
Since the non-member swap and the member swap have equivalent effect, and LWG 3498 removes noexcept from the latter, I think it's pretty clear that the former should not be noexcept.History | |||
---|---|---|---|
Date | User | Action | Args |
2023-11-22 15:47:43 | admin | set | status: wp -> c++23 |
2022-02-11 11:26:04 | admin | set | messages: + msg12369 |
2022-02-10 12:58:57 | admin | set | messages: + msg12353 |
2022-02-10 12:58:57 | admin | set | status: ready -> wp |
2021-10-14 11:35:22 | admin | set | messages: + msg12152 |
2021-10-14 11:35:22 | admin | set | status: new -> ready |
2021-10-10 10:43:25 | admin | set | messages: + msg12104 |
2021-10-07 00:00:00 | admin | create |