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.
tuple
should be removedSection: 22.4.4.2 [tuple.cnstr] Status: NAD Submitter: Daniel Krügler Opened: 2008-10-04 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 NAD status.
Discussion:
N2770 (and thus now the WP) removed the non-template move-assignment operator from tuple's class definition, but the latter individual member description does still provide this operator. Is this (a) an oversight and can it (b) be solved as part of an editorial process?
[ Post Summit Daniel provided wording. ]
[ Batavia (2009-05): ]
We believe that the proposed resolution's part 1 is editorial.
Regarding part 2, we either remove the specification as proposed, or else add back the declaration to which the specification refers. Alisdair and Bill prefer the latter. It is not immediately obvious whether the function is intended to be present.
We recommend that the Project Editor restore the missing declaration and that we keep part 2 of the issue alive.
Move to Open.
[ 2009-07 Frankfurt: ]
Leave this open pending the removal of concepts from the WD.
[ 2009-10 Santa Cruz: ]
Proposed resolution:
In 22.4.4 [tuple.tuple], class tuple
just before member swap
please
change as indicated:
[ This fixes an editorial loss between N2798 to N2800 ]
template <class... UTypes> requires HasAssign<Types, const UTypes&>... tuple& operator=(const pair<UTypes...>&); template <class... UTypes> requires HasAssign<Types, RvalueOf<UTypes>::type>... tuple& operator=(pair<UTypes...>&&);
In 22.4.4.2 [tuple.cnstr], starting just before p. 11 please remove as indicated:
requires MoveAssignable<Types>... tuple& operator=(tuple&& u);
-11- Effects: Move-assigns each element ofu
to the corresponding element of*this
.
-12- Returns:*this
.