1077. Nonesense tuple declarations

Section: 22.4.4 [tuple.tuple] Status: NAD Editorial Submitter: Pete Becker Opened: 2009-03-20 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [tuple.tuple].

View all issues with NAD Editorial status.

Discussion:

Class template tuple 22.4.4 [tuple.tuple]:

template <class... UTypes>
  requires Constructible<Types, const UTypes&>...
template <class... UTypes>
  requires Constructible<Types, RvalueOf<UTypes>::type>...

Somebody needs to look at this and say what it should be.

[ 2009-03-21 Daniel provided wording. ]

[ Batavia (2009-05): ]

The resolution looks correct; move to NAD Editorial.

Proposed resolution:

In 22.4.4 [tuple.tuple], class tuple, change as indicated:

template <class... UTypes>
  requires Constructible<Types, const UTypes&>...
  tuple(const pair<UTypes...>&);
template <class... UTypes>
  requires Constructible<Types, RvalueOf<UTypes>::type>...
  tuple(pair<UTypes...>&&);

[NB.: The corresponding prototypes do already exist in 22.4.4.2 [tuple.cnstr]/7+8]