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> |
发布于