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.

### 3400. Does `is_nothrow_convertible` consider destruction of the destination type?

Section: 20.15.7 [meta.rel] Status: New Submitter: Jiang An Opened: 2020-02-10 Last modified: 2020-09-06

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) of `std::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.

Proposed resolution: