This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.
nothrow
should be inline constexpr
rather that extern const
Section: 17.6.2 [new.syn] Status: NAD Submitter: Antony Polukhin Opened: 2018-04-25 Last modified: 2020-09-06
Priority: 2
View all issues with NAD status.
Discussion:
std::nothrow
in [new.syn] is declared as 'extern const nothrow_t nothrow;
'. Unfortunately
this declaration requires linking with Standard Library (which does not work well on GCC with -nostdlib
flag).
Moreover the declaration differs from other Standard Library tags that are 'inline constexpr
'.
[2018-06-18 after reflector discussion]
Priority set to 2
[2018-08-23 Batavia Issues processing]
Status to Tentatively NAD - if we had a status 'Wont Fix' that would be correct.
This is an ABI break for most implementations, and people can define their
own variable of type std::nothrow_t
if they want a constexpr one.
Proposed resolution:
This wording is relative to N4741.
Edit 17.6.2 [new.syn] as indicated:
struct nothrow_t { explicit nothrow_t() = default; };extern constinline constexpr nothrow_t nothrow;