This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.
tuple
constructionSection: 22.4.4.2 [tuple.cnstr] Status: C++11 Submitter: Alisdair Meredith Opened: 2008-09-15 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [tuple.cnstr].
View all other issues in [tuple.cnstr].
View all issues with C++11 status.
Discussion:
22.4.4.2 [tuple.cnstr]:
Effects: Default initializes each element.
Could be clarified to state each "non-trivial" element. Otherwise we have a conflict with Core deinfition of default initialization - trivial types do not get initialized (rather than initialization having no effect)
I'm going to punt on this one, because it's not an issue that's related to concepts. I suggest bringing it to Howard's attention on the reflector.
[ San Francisco: ]
Text in draft doesn't mean anything, changing to "non-trivial" makes it meaningful.
We prefer "value initializes". Present implementations use value-initialization. Users who don't want value initialization have alternatives.
Request resolution text from Alisdair.
This issue relates to Issue 868(i) default construction and value-initialization.
[ 2009-05-04 Alisdair provided wording and adds: ]
Note: This IS a change of semantic from TR1, although one the room agreed with during the discussion. To preserve TR1 semantics, this would have been worded:
requires DefaultConstructible<Types>... tuple();-2- Effects: Default-initializes each non-trivial element.
[ 2009-07 Frankfurt ]
Move to Ready.
Proposed resolution:
Change p2 in Construction 22.4.4.2 [tuple.cnstr]:
requires DefaultConstructible<Types>... tuple();-2- Effects:
DefaultValue-initializes each element.