forward调用的也是static_cast,两个函数实现实际是一样的,都是包装了static_cast类型转换而已 完美转发主要是使用的一个称之为引用折叠的一个规则。 /* template<typename _Tp> constexpr _Tp&& forward(typename std::remove_reference<_Tp>::type& __t) noexcept { return static_cast<_Tp&&>(__t); } template<typename _Tp> constexpr typename std::remove_reference<_Tp>::type&& move(_Tp&& __t) noexcept { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); } */