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

3356. __cpp_lib_nothrow_convertible should be __cpp_lib_is_nothrow_convertible

Section: 17.3.2 [version.syn] Status: C++20 Submitter: Barry Revzin Opened: 2019-12-09 Last modified: 2021-02-25

Priority: 0

View all other issues in [version.syn].

View all issues with C++20 status.


P1902R1 introduced the feature test macro __cpp_lib_nothrow_convertible, but every other example in SD-6 of a feature test macro testing for the presence of a single type trait FOO is named __cpp_lib_FOO. This macro should be renamed __cpp_lib_is_nothrow_convertible.

This naming convention should probably be documented in SD-6 as policy.

[2019-12-21 Issue Prioritization]

Status to Tentatively Ready and priority to 0 after seven positive votes on the reflector. A convincing argument was that currently no vendor had published a release with the previous feature macro.

Proposed resolution:

This wording is relative to N4842.

  1. Modify 17.3.2 [version.syn], header <version> synopsis, as indicated:

    #define __cpp_lib_not_fn                 201603L  // also in <functional>
    #define __cpp_lib_is_nothrow_convertible 201806L  // also in <type_traits>
    #define __cpp_lib_null_iterators         201304L  // also in <iterator>