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.
default_constructible
to default_initializable
Section: 18.4.12 [concept.default.init] Status: C++20 Submitter: Casey Carter Opened: 2019-11-18 Last modified: 2021-06-06
Priority: 0
View all other issues in [concept.default.init].
View all issues with C++20 status.
Discussion:
WG21 merged P1754R1 "Rename concepts to standard_case
for C++20"
into the working draft as LWG Motion 11 in 2019 Cologne. That proposal contains editorial instructions to
rename what was the DefaultConstructible
concept:
IF LWG3151 ACCEPTED: default_initializable ELSE default_constructible
Notably LWG 3151(i) "ConvertibleTo
rejects conversions from array and function types" is
not the intended issue number, LWG 3149(i) "DefaultConstructible
should require default
initialization" is. It was made clear during discussion in LEWG that 3149 would change the concept to require default-initialization to be valid rather than value-initialization which the is_default_constructible
trait requires. LEWG agreed that it would be confusing to have a trait and concept with very similar names
yet slightly different meanings, and approved P1754R1's proposed renaming.
[2019-11-30 Issue Prioritization]
Status to Tentatively Ready and priority to 0 after eight positive votes on the reflector.
Proposed resolution:
This wording is relative to N4835.
Change the stable name "[concept.defaultconstructible]" to "[concept.default.init]" and retitle
"Concept default_constructible
" to "Concept default_initializable
". Replace all references
to the name default_constructible
with default_initializable
(There are 20 occurrences).