This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD Editorial status.

### 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.1 [tuple.cnstr]/7+8]