is_nothrow_convertible
consider destruction of the destination type?Section: 21.3.7 [meta.rel] Status: New Submitter: Jiang An Opened: 2020-02-10 Last modified: 2023-12-22
Priority: 3
View other active issues in [meta.rel].
View all other issues in [meta.rel].
View all issues with New status.
Discussion:
This issue was submitted after a previous editorial change request had been rejected by the project editors.
I find that all known implementations (at least msvcstl, libc++, libstdc++ and the sample in P0758R1) ofstd::is_nothrow_convertible
may be not clear enough to indicate that whether destruction of the destination type is considered (or not).
For example, given a type Weird
defined as
struct Weird { Weird(int) noexcept {} ~Weird() noexcept(false) {} };
Then std::is_nothrow_convertible_v<int, Weird>
is false
in every known implementation.
However, it seems that the conversion itself is noexcept
.
[2020-02-22, Daniel comments]
This seems to be quite related to the existing issue LWG 2116.
[2020-03-11 Issue Prioritization]
Priority to 3 after reflector discussion.
[2023-12-22; Daniel comments]
This issue should be resolved by LWG 4028.
Proposed resolution: