1077. Nonesense tuple declarations

Section: 23.5.3 [tuple.tuple] Status: NAD Editorial Submitter: Pete Becker Opened: 2009-03-20 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [tuple.tuple].

View all issues with NAD Editorial status.

Discussion:

Class template tuple 23.5.3 [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 23.5.3 [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 23.5.3.1 [tuple.cnstr]/7+8]