一、概述
std::move
c++11中提供了std::move()来将左值转换为右值引用,从而方便的使用移动语义。move是将对象的状态或者所有权从一个对象转移到另一个对象,只是转移,没有内存拷贝。
c++中所有容器都实现了move语义,方便我们实现性能优化。move对于拥有形如对内存、文件句柄等资源的成员的对象有效。如果是一些基本类型,比如int或char[10]数组等,如果使用move,仍然会发生拷贝(因为没有对应的移动构造函数)。
std::list<std::string> tokens;
//发生了移动构造。list的实现,将目的资源句柄赋值为源资源句柄,而将源资源句柄清空
std::list<std::string> t = std::move