Section: 23.4 [pairs] Status: CD1 Submitter: Thorsten Ottosen Opened: 2007-07-08 Last modified: 2016-02-10
Priority: Not Prioritized
View all other issues in [pairs].
View all issues with CD1 status.
The current draft has make_pair() in 23.4 [pairs]/16 and make_tuple() in 188.8.131.52 [tuple.creation]. make_tuple() detects the presence of reference_wrapper<X> arguments and "unwraps" the reference in such cases. make_pair() would OTOH create a reference_wrapper<X> member. I suggest that the two functions are made to behave similar in this respect to minimize confusion.
In 23.2 [utility] change the synopsis for make_pair() to read
template <class T1, class T2> pair<
typename decay<T1>::type, typename decay<T2>::type> make_pair(T1&&, T2&&);
In 23.4 [pairs]/16 change the declaration to match the above synopsis. Then change the 23.4 [pairs]/17 to:
typename decay<T1>::type, typename decay<T2>::type>(forward<T1>(x),forward<T2>(y))