Links to Rvalue have been noted. Where std::make_pairin C ++ 03 has a signature
template< class T1, class T2 >
std::pair<T1,T2> make_pair( T1 t, T2 u );
In C ++ 11, it has
template< class T1, class T2 >
std::pair<V1,V2> make_pair( T1&& t, T2&& u );
V1 V2 () std::decay<T1|T2>::type. ++ 14 constexpr, .
, std::make_pair<int*, int**> ++ 03 int* int**, ++ 11 int*&& int**&&.
0 int**&& , param lvalue rvalue int*. ++ 11.
return std::make_pair<int*&, int**>(param, 0);
++ 03, ++ 11 - param int*&, std::pair<int*&, int**> std::pair<int*, int**>, .
, std::make_pair . @T.C. , , std::pair,
return std::pair<int*, int**>(param, 0);