私はこれstd::forward
を読んでいるので、今はとの実装を見ていますstd::move
:
// TEMPLATE FUNCTION forward
template<class _Ty> inline
_Ty&& forward(typename identity<_Ty>::type& _Arg)
{ // forward _Arg, given explicitly specified type parameter
return ((_Ty&&)_Arg);
}
// TEMPLATE FUNCTION move
template<class _Ty> inline
typename tr1::_Remove_reference<_Ty>::_Type&&
move(_Ty&& _Arg)
{ // forward _Arg as movable
return ((typename tr1::_Remove_reference<_Ty>::_Type&&)_Arg);
}
全体像はわかったと思いますがtypename
、テンプレート定義の外側の使い方がわかりません(template<...>
)。この場合はどういう意味ですか?