1386. pack_arguments overly complex

Section: 23.5.3.4 [tuple.creation] Status: C++11 Submitter: INCITS Opened: 2010-08-25 Last modified: 2016-02-10

Priority: Not Prioritized

View other active issues in [tuple.creation].

View all other issues in [tuple.creation].

View all issues with C++11 status.

Discussion:

Addresses US-99

pack_arguments is overly complex.

[ Resolved in Rapperswil by a motion to directly apply the words from the ballot comment in N3102. ]

Proposed resolution:

This issue resulted from a lack of understanding of how references are forwarded. The definition of pack_arguments should be simply:
template <class... Types> tuple<ATypes&&> pack_arguments(Types&&...t);
Types: Let Ti be each type in Types....
Effects: ...
Returns:
tuple<ATypes&&...>(std::forward<Types>(t)...)
The synopsis should also change to reflect this simpler signature.