X&&= X&
X&&& = X&
X &&&= X&
X && && = X &&
例:
template<typename _Tp>
constexpr typename std::remove_reference<_Tp>::type&&
move(_Tp&& __t) noexcept
{ return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }
着信は、Tを想定し、正しい値である&&
1.move(T && && __t) - >移動(T &&)を鋳型としてインスタンス化するように、パラメータTの正しい値&&
2.std :: remove_reference <_Tp> ::タイプ&& - > T &&
3.方法为T &&移動(T &&){リターンはstatic_cast <T &&>(__ T);}
着信値はT&、残っています
1.move(T&&& __ T) - >移動(T&)それはT&左のパラメータをテンプレートとしてインスタンス化されます
2.std :: remove_reference <_Tp> ::タイプ&& - > T &&
3方法为T &&移動(T&){リターンはstatic_cast <T &&>(__ T);}
リファレンスC ++プライマー第5版