В VS2010 std :: forward определяется как таковой:
template<class _Ty> inline
_Ty&& forward(typename identity<_Ty>::type& _Arg)
{ // forward _Arg, given explicitly specified type parameter
return ((_Ty&&)_Arg);
}
identity
, по-видимому, используется исключительно для отключения шаблона вывод аргумента. Какой смысл целенаправленно отключать его в этом случае?