理解不对
1、res是在函数返回之前已经被析构,其占用的堆内存释放了,占用的栈内存可能被覆盖/复用了。
一个已经无意义的变量res,其别名(左值引用、右值引用)、指针也等价于立即无效了,没有机会被函数外面的代码再来move走其内部的数据。
强行move,可以认为是UB
2、move构造不是"交换"两个对象内部的数据,是单向的。
【 在 hl0737 的大作中提到: 】
: 好的,非常感谢您的回答,但是还有一点点小疑问想请教一下您。
: vector中的数据是存储在堆上的, 也就是动态创建的一块内存,vector中有一个指针指向这块内存
: 如get_cmp_files中的vector res,假设res中指向堆的指针为p_sub, 这块内存是buffer S
: ...................
--
修改:z16166 FROM 123.118.191.*
FROM 123.118.191.*