围绕std::move()谈谈通用引用,类型推导和引用折叠
从std::move()说起
对于std::move(),既可以接受一个左值,也可以接受一个右值。它的函数定义是这个样子的
template <typename T>
typename remove_reference<T>::type&& move(T&& t) noexcept {
return static_cast<typename remove_reference<T>::type&&>(t);
}
但形参中的T&&并不是是一个右值引用, 如果他是一个右值引用, 那么下面代码...
qilingzhao.com2 min read