c++ - 有必要使用std::move吗?这不是已经是右值引用了吗?
问题描述
class A
{
B* ptr;
A(B* ptr_) : ptr(std::move(ptr_))
{}
};
A myA(new B);
在这段代码中,是否有必要在 ptr_ 上调用 std::move?它还不是右值引用吗?
解决方案
ptr_
不是右值引用,因为它是一个命名变量- 不需要,但不是
std::move
因为它是右值,而是因为移动和复制普通指针是完全相同的操作(std::move(ptr_)
不会清除)ptr_
推荐阅读
- postman-testcase - 邮递员如何使用正则表达式读取隐藏字段的值
- python - 将一个元素转换为一个元素的元组/列表/集合/字符串的简洁通用方法
- makefile - Vasp 6.2.1 未编译
- c# - 重置后球轨迹完全相同(Unity)
- reactjs - react-hook-form 触发后如何删除 onSubmit 数据负载?
- python - “NoneType”对象没有“发送”属性
- javascript - 如何在 JavaScript 中跟踪鼠标移动
- javascript - 有没有办法在 javascript 中使用 keras.pad_sequences?
- android - 其他一些函数中的 mMap.clear 正在从公共 void onMapLongClick(LatLng latLng) 中删除标记?
- reactjs - 在反应中重用顺风组件的简单方法