stdmove实现
std::move实现
std::move是一个函数模板,返回值是一个右值引用,实现方法是通过一个中间结构体模板的辅助。
1.定义
template <typename T> |
2.remove_reference<T>
remove_reference通过三种模板实现,来获取到T的原始类型,将其命名为type。
//原始的,最通用的版本 |
3.解释
std::move通过remove_reference模板获取到具体类型type,再将其补上&&代表其右值引用版本,最后将传入的参数t转换为其右值引用类型返回。
template <typename T> |
发布于