I'm reading this,所以我现在看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<...>
的使用。在这种情况下是什么意思? 最佳答案
它表明identity<_Ty>::type&
是类型,而不是类中的静态变量。
这是一个更简单的示例:
template<class T> void f() { T::x * p; ... }
p
是指向T::x
类的指针。T::x
是一个静态变量,它乘以p
。T::x
来指定typename
是一种类型:template<class T> void f() { typename T::x * p; ... }
关于c++ - 在这种情况下,typename是什么意思,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11898679/