再以汇编代码分析c++的右值引用

news2024/9/25 1:20:34

汇编分析c++语言的执行结果最为准确。
在这里插入图片描述
在这里插入图片描述
可见,右值引用其实还是引用, bb 和 cc 都是对 aa 的引用,其内存里存储了 aa 的地址。
而且还有一个很奇特的现象,bb无法给cc赋值,右值引用无法给右值赋值。
同样是调用std:: move() ,但汇编代码中,对参数类型的不同,编译结果是不同的。
此种情况常见于函数中参数的传递。见王建伟老师《模板与泛型》里的完美转发。引出的思考。
右值引用型的变量,因为具有了名称,就变成了左值。强制把右值引用型的变量作为实参,传递给右值引用型的形参,会报错。所以给右值引用型的变量赋值,必须使用没有名字的变量,如std::move() 的返回值。
我看b站,有个视频,讲得很好。std::forward原理与实现

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/696534.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

更换电脑背景为纯黑色(真的一点其他颜色都没有)

1步2步可合并为第一步 1、控制面板 2、优化视觉显示 3、选中确定即可 查看电脑背景图片,纯黑色,无敌呦! 你就说牛不牛 吧

惠普232dw/233dw激光打印机手机WIFI连接实操、初始化

0.首先建议,不要买这台垃圾,经常断网,链接不便 1.手机下载 惠普smart 2.长按i键 3.等到x和↓闪烁, 同时按住wifi和x键持续5秒以上,松开时开始自动初始化,等待一段时间,初始化完成&#xff0c…

零知识证明的示例

目录 零知识证明的示例 怎样通过零知识证明验证联邦学习中模型的真伪 零知识证明的示例 1、零知识洞穴 如图表示一个简单的迷宫,C与D之间有一道门,需要知道秘密口令才能将其打开。P向V证明自己能打开这道门,但又不愿向V泄露秘密口令。 可采…

DAY33:回溯算法(九)解数独(棋盘问题,二维递归)

37.解数独 编写一个程序,通过填充空格来解决数独问题。 数独的解法需 遵循如下规则: 数字 1-9 在每一行只能出现一次。数字 1-9 在每一列只能出现一次。数字 1-9 在每一个以粗实线分隔的 3x3 宫内只能出现一次。(请参考示例图)…

日本知名汽车零部件公司巡礼系列之株式会社168

株式会社168 业务内容: 汽车用防振橡胶制造 公司简介: 代表:片冈幸浩 资本金:4亿9500日元 员工数::140名 成立时间:2015年4月 强项领域: 住友理工的防振橡胶制品&#xff0…

【IP Phone】网络杂谈(5)之什么是IP Phone?

涉及知识点 什么是 IP Phone,IP Phone简介,网络电话,IP电话的理解, IP Phone的基本原理。深入了解IP Phone关键技术。 原创于:CSDN博主-《拄杖盲学轻声码》,更多内容可去其主页关注下哈,不胜感…

ROCKCHIP ~ 查看NPU/GPU/CPU 频率/使用率

输入以下命令挂载 debug,只有挂载 debug 才可以查看 NPU/GPU/CPU 频率使用率。 mount -t debugfs debugfs /sys/kernel/debugmount | grep debugNPU 输入以下命令查看 NPU 频率: cat /sys/kernel/debug/clk/clk_scmi_npu/clk_rateGPU 查看 GPU 频率&…

【力扣难题图解】25. K 个一组翻转链表-头插法

class Solution { public:ListNode* reverseKGroup(ListNode* head, int k) {ListNode* dummyHead new ListNode(0);dummyHead->next head;ListNode* pre dummyHead;ListNode* cur dummyHead;int count 0;while(cur){// 寻找K-Group链表段count;cur cur->next;// K…

CSDN上最最全的黑客工具软件大全(共100个)

黑客工具软件大全100套 1 Nessus:最好的UNIX漏洞扫描工具 Nessus 是最好的免费网络漏洞扫描器,它可以运行于几乎所有的UNIX平台之上。它不止永久升级,还免费提供多达11000种插件(但需要注册并接受EULA-acceptance–终端用户授权协…

4、动手学深度学习——多层感知机:模型选择、欠拟合和过拟合

1、训练误差和泛化误差 训练误差(training error)是指, 模型在训练数据集上计算得到的误差。 泛化误差(generalization error)是指, 模型对位置数据项预测的误差,泛化误差体现出了模型的泛化能…

基于Python所写的超级画板设计

点击以下链接获取源码资源: https://download.csdn.net/download/qq_64505944/87959096?spm1001.2014.3001.5503 《超级画板》程序使用说明 在PyCharm中运行《超级画板》即可进入如图1所示的系统主界面。在该界面中,通过左侧的工具栏可以选择所要进行的…

DAY32——贪心part2

1. class Solution {public int maxProfit(int[] prices) {//贪心法 收集相隔两天的利润int res 0;for(int i0;i<prices.length-1;i){//System.out.println(i);int price prices[i1] - prices[i];if(price > 0){res res price;}}return res; } } 2. 代码随想录 (p…

LeetCode·每日一题·2485. 找出中枢整数·前缀和

作者&#xff1a;小迅 链接&#xff1a;https://leetcode.cn/problems/find-the-pivot-integer/solutions/2320800/qian-zhui-he-zhu-shi-chao-ji-xiang-xi-by-e4yp/ 来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 著作权归作者所有。商业转载请联系作者获得授权&…

轻量服务器带宽流量和云服务器带宽流量有什么区别?

轻量服务器带宽流量和云服务器带宽流量有什么区别?虽然轻量服务器是轻量化云服务器&#xff0c;但与云服务器的差别还是有一些的&#xff0c;比如这令很多人好奇的轻量服务器带宽和流量和云服务器的区别在哪。下面我们就仔细聊聊关于轻量服务器和云服务器各自的带宽流量差异&a…

K8S集群安装

文章目录 一、环境初始化1、检查操作系统的版本2、主机名解析3、时间同步4、禁用iptables和firewalld服务5、禁用selinux6、禁用swap分区7、修改linux的内核参数8、配置ipvs功能9、重启服务器 二、安装Docker1、切换镜像源2、查看当前镜像源中支持的docker版本3、安装特定版本的…

TCP协议的十大核心特性总结(全面)

目录 一.TCP本身特性 二.报文格式 TCP十大核心特性 一.确认应答 二.超时重传 三.连接管理(三次握手,四次挥手) 三次握手 四次挥手 四.滑动窗口 情况一:接收方的ACK丢失 情况二:发送方的数据包丢失 五.流量控制 六.拥塞控制 七.延迟应答 八.捎带应答 九.粘包问题 …

MATLAB工具箱下载心得(DeepLearnToolbox-master、DSP)

用MATLAB自带的工具Add-Ons只成功过一次&#xff08;一年前吧&#xff0c;又或者那次也没有成功&#xff09;。 现在发现&#xff0c;那个页面都打不开了&#xff0c;不管有没有tizi&#xff0c;都打不开了。 所以以后就只能找资源了。 这次下载DeepLearnToolbox-master&#…

shell自动化代码需求代开发

做linux&#xff0c;shell脚本代写 &#xff0c;一个简单脚本30yuan&#xff0c;复杂的另外商议。包后期维护与逻辑思路答疑。

Jmeter(五) - 从入门到精通 - 创建网络计划实战和创建高级Web测试计划(详解教程)

1.简介 上一篇中我已经将其的理论知识介绍了一下&#xff0c;这一篇我就带着大家一步一步的把上一篇介绍的理论知识实践一下&#xff0c;然后再说一下如何创建高级web测试计划。 2.网络计划实战 通过上一篇的学习&#xff0c;将其分类为&#xff1a; &#xff08;1&#xff09…

Openlayers map三要素(view,target,layers),及其他参数属性方法介绍

​​ 版本说明 Openlayers的实战教程 分为图文版 和 视频版&#xff0c; 这里的是图文版&#xff0c;包含基础知识介绍和实战的源代码&#xff0c;示例效果以gif动图的形式展现出来。 视频版 正在录制中&#xff0c;很快会上线&#xff0c;敬请期待~&#xff0c; 如有问题&am…