news 2026/4/30 15:19:27

std::move的使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
std::move的使用

1、原始指针和内置类型用std::move不会转移所有权,只有资源管理语义的类,比如智能指针,才会有真正的转移所有权。

2、对内置类型使用move之后,虽然没有转移所有权,但不应该再使用了,原对象的状态处于“未指定”,可能是原值,也可能是新值。

3、move的作用:类型转换(左值转右值),一个“借用”资源的方式,不会销毁对象,也不会释放内存。

#include <iostream> #include <memory> void func(int&& value) { value++; std::cout << "Rvalue reference received: " << value << std::endl; } int main() { int* ptr = new int(42); std::cout << "Value: " << *ptr << std::endl; int* ptr2 = std::move(ptr);//指针也是内置类型,std::move只是将其转换为右值引用,并不会改变指针的值或所有权。 if (!ptr)//ptr仍然指向原来的地址,但我们不应该再使用它,因为它已经被移动了。 { std::cout << "ptr is now null after move." << std::endl; } else { std::cout << "Value from ptr: " << *ptr << std::endl; } std::cout << "Value from ptr2: " << *ptr2 << std::endl; int x = 10; func(std::move(x));//对内置类型的移动没有实际意义,因为它们没有资源管理的特性,但这只是为了演示std::move的用法。 std::cout << "Value of x after move: " << x << std::endl;//值是11,但我们不应该再使用x,因为它已经被移动了,不能访问。 std::unique_ptr<int> uniquePtr1 = std::make_unique<int>(42); std::unique_ptr<int> uniquePtr2 = std::move(uniquePtr1); if (!uniquePtr1)//unique_ptr在移动后会变为null,表示它不再拥有资源,不能访问。 { std::cout << "uniquePtr1 is now null after move." << std::endl; } else { std::cout << "Value from uniquePtr1: " << *uniquePtr1 << std::endl; } return 0; }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/30 15:11:21

OpenClaw 入门教程(3):Dashboard 页面详解

创建日期&#xff1a;2026-04-21作者&#xff1a;小龙 &#x1f409;版本&#xff1a;v1.0适用版本&#xff1a;OpenClaw 2026.4.14 &#x1f5c2;️ 1. 左侧菜单结构 &#x1f4d6; 概述 OpenClaw Dashboard 是 Web 版控制界面&#xff0c;提供可视化的系统管理、配置编辑、会…

作者头像 李华
网站建设 2026/4/30 15:10:18

数据工程师必读:如何用ETL构建数据仓库

数据工程师必读&#xff1a;如何用ETL构建数据仓库 业务系统日益复杂&#xff0c;传统的自定义脚本数据抽取方式不仅维护成本高&#xff0c;缺乏调度监控&#xff0c;一旦源表结构变动&#xff0c;整个数据流水线便濒临崩溃。搭建一个稳定、可扩展的数据仓库&#xff0c;不再是…

作者头像 李华
网站建设 2026/4/30 15:09:07

季中OTB为什么总是失控:鞋服零售商品企划的核心矛盾与解法

很多鞋服品牌在做季前商品企划时&#xff0c;OTB计划看起来是平衡的——总量控制住了&#xff0c;品类分配合理&#xff0c;交货节奏也排好了。但到了季中&#xff0c;往往会发现实际采购金额已经偏离计划15%以上&#xff0c;有些品类严重超买&#xff0c;有些该追加的爆款却因…

作者头像 李华
网站建设 2026/4/30 15:08:52

Spring Boot 4.9 可观测性增强:全方位监控与分析

Spring Boot 4.9 可观测性增强&#xff1a;全方位监控与分析 别叫我大神&#xff0c;叫我 Alex 就好 Spring Boot 4.9 带来了全面的可观测性增强&#xff0c;为开发者提供了更强大的监控、追踪和日志功能。本文将详细介绍 Spring Boot 4.9 的可观测性特性&#xff0c;包括 Micr…

作者头像 李华
网站建设 2026/4/30 15:03:30

高效达成!以低查重为目标的AI教材生成工具,开启编写新体验!

整理教材中的知识点确实是一项“精细活”&#xff0c;最大的挑战在于如何做到平衡与衔接。很多时候&#xff0c;我们会担心重要知识点的遗漏&#xff0c;或者难以把握难度的适宜性——小学的教材有时显得比较复杂&#xff0c;学生难以理解&#xff1b;而高中教材则显得过于简单…

作者头像 李华