根据这个链接,模板参数演绎不允许std::forward并且std::remove_reference正在帮助我们实现这一点.但是如何使用remove_reference防止模板扣除在这里发生?
template <class S>
S&& forward(typename std::remove_reference<S>::type& t) noexcept
{
return static_cast<S&&>(t);
}
Run Code Online (Sandbox Code Playgroud)