c++11 函数的引用限定符(reference qualifiers)
在C++11的新特性中,关于左值/右值的对象调用函数,有了一些新的变化。
如下面的代码:
class Widget {
public:void doWork() & //只有*this为左值的时候才能被调用{std::cout << "left value call" << std::endl;}void doWork() && //只有*this为右值的时候才能被调用{std::cout << "right value call" << std::endl;}int& RetValue() & {int b = 10;return b;}int&& RetValue() &&{int b = 10;return std::move(b);}int m_value;
}; // 创建一个右值对象
static Widget make()
{Widget w;return w;
}int main()
{std::cout << "============1============" << std::endl;Widget w;w.doWork();std::cout << "============2============" << std::endl;make().doWork();std::move(w).doWork();
}输出:
============1============
left value call
============2============
right value call
right value call
c++11 函数的引用限定符(reference qualifiers)相关推荐
- C++ 右值引用 | 左值、右值、move、移动语义、引用限定符
文章目录 C++11为什么引入右值? 区分左值引用.右值引用 move 移动语义 移动构造函数 移动赋值运算符 合成的移动操作 小结 引用限定符 规定this是左值or右值 引用限定符与重载 C++1 ...
- C++ Primer 5th笔记(chap 13 拷贝控制)引用限定符
1. 问题 关于右值和左值引用成员函数,通常在一个对象上调用成员函数,而不管对象是一个左值还是一个右值: string s1 = "a value",s2 = "anot ...
- C++ 对象移动(右值引用()、移动构造函数、移动赋值运算符、引用限定函数)
原文:对象移动(右值引用(&&).移动构造函数.移动赋值运算符.引用限定函数) 一.对象移动概述 C++11标准引入了"对象移动"的概念 对象移动的特性是:可以移动 ...
- 固有的不可移植的特征之volatile限定符
volatile的确切含义与机器相关,只能通过阅读编译器文档来理解,使用volatile的程序在移到新的机器或编译器时通常必须改变. 直接处理硬件的程序常具有这样的数据成员,它们的值由程序本身直接控制 ...
- 背水一战 Windows 10 (9) - 资源: 资源限定符概述, 资源限定符示例
原文: 背水一战 Windows 10 (9) - 资源: 资源限定符概述, 资源限定符示例 [源码下载] 背水一战 Windows 10 (9) - 资源: 资源限定符概述, 资源限定符示例 作者: ...
- 指针、引用以及const限定符、constexpr限定符
文章目录 复合类型 引用 概念与使用 引用的定义 注意 指针 概念 声明方式 取地址符 指针值 空指针 利用指针访问对象 赋值和指针 void* 指针 指向指针的指针 指向指针的引用 初始化所有指针 ...
- C++11之decltype类型推导(使用场景、推导四规则、cv限定符)
系列文章 C++11之正则表达式(regex_match.regex_search.regex_replace) C++11之线程库(Thread.Mutex.atomic.lock_guard.同步 ...
- C++11标准之右值引用(ravalue reference)
C++11标准之右值引用(ravalue reference) 1.右值引用引入的背景 临时对象的产生和拷贝所带来的效率折损,一直是C++所为人诟病的问题.但是C++标准允许编译器对于临时对象的产生具 ...
- OpenCL Function Qualifiers (函数限定符)
OpenCL Function Qualifiers (函数限定符) OpenCL 3.0 Reference Pages -> OpenCL Compiler -> Function Q ...
- C++ 学习笔记(19)new/delete表达式、定位new、typeid、dynamic_cast、type_info、枚举类型、成员函数指针、union、位域、volatile限定符、链接指示
C++ 学习笔记(19)new/delete表达式.定位new.typeid.dynamic_cast.type_info.枚举类型.成员函数指针.union.位域.volatile限定符.链接指示 ...
最新文章
- 纯前端H5小应用_localStorage存储
- 基于JavaWeb实现网上花店商城系统
- 买游戏来运营_「笔吧评测室」双十一快来了,买游戏本要做好心理准备
- 英文文章如何进行略读
- java用数组实现随机不重复抽奖
- 入微:探究文档中找不到的12c并行索引扫描新特性
- 存储过程是用来干什么的_感情不是用来考验的
- Codeforces Round #334 (Div. 2) A. Uncowed Forces 水题
- linux命令iconv_Linux中iconv命令的简介和使用方法
- Ubuntu 8.10字体美化原理初步探索
- 当复制Web浏览器的SVN地址到TorioseSVN上时显示错误,无法解析URL
- 【NDN IoT】Caching in Named Data Networking for the Wireless Internet of Things
- 电池级碳酸氢锂除杂质钙镁离子工艺原理
- 不见的何止重城,隐隐的又岂是江树。
- docker webdav_【技术分享】利用WebDAV特性建立隐蔽后门
- 教你用Python如何玩转声音文件,将声音按照语音间隙切割为片段
- TI-RTOS---TI-RTOS简介
- 写出求abc中最大数的c语言表达式,有3个整数abc由键盘输入输出其中最大的数
- php ios android 加密,在android/ios中加密,在php中解密
- JS -- 作用域、作用域链以及延长作用域链的方法
热门文章
- ppt 如何加背景音乐
- cad计算机绘图基础知识,CAD 计算机绘图基础课件.ppt
- 关于wkhtmltopdf生成pdf空白
- 单龙芯3A3000-7A1000PMON研究学习-(2)搭建交叉编译环境
- [分布式系列]Gossip协议
- 使用技巧-输出彩色TIF格式分类结果
- 【CicadaPlayer】av_rescale_q 学习:转换PTS和Duration
- 加域电脑如何取消锁屏
- 远程服务器 Linux 用cityscape训练DeepLabv3模型(Pytorch版)并用图像测试
- html m3u8 flash,m3u8插件-支持在pc端(flashplayer)播放m3u8格式文件-ckplayer使用方法...