C++ 移动语义 理解

发布时间 2023-08-29 00:26:39作者: 0x7F

C++ 左/右值及其引用 论述C++ 智能指针 两部分都涉及到移动语义

但是两部分的讨论反而会让人产生疑惑,原因在于,在左右值一文中,移动语义起到的作用是将左值显示转换为右值
但是在unique_ptr一文中,移动语义起到的作用是将原有指针置空,同时将对象的控制权移交给目标指针(所谓移交控制权,就是让目标指针指向目标对象)
从表面来看,两种用法毫不相关,所以才让人产生困惑

《C++ primer》的说法是,移动语义实现了移动对象,避免了拷贝对象,而必须使用移动而非拷贝的原因主要来自IO类和unique_ptr等不能进行拷贝的对象(似乎这里的对象和指针指向的对象并非同一概念)