关于std::move
move的声明 move(_Tp&& __t) noexcept { return static_cast<typename std::remove_reference<_Tp>::type&&>(__t); }所以std::move(foo)并不会对foo进行任何操作,而是为了声明其为右值,调用移动构造函数