当前位置: 首页 > news >正文

政府门户网站制度建设情况新人做外贸怎么找国外客户

政府门户网站制度建设情况,新人做外贸怎么找国外客户,wordpress内容页文件名,企业管理系统源码万能引用是一种可以同时接受左值或右值的引用,它的形式是T&&,其中T是一个模板参数。万能引用不是C的一个新特性,而是利用了模板类型推导和引用折叠的规则来实现的功能。 模板类型推导 模板类型推导是指在调用一个模板函数时&#x…

万能引用是一种可以同时接受左值或右值的引用,它的形式是T&&,其中T是一个模板参数。万能引用不是C++的一个新特性,而是利用了模板类型推导引用折叠的规则来实现的功能。

模板类型推导

模板类型推导是指在调用一个模板函数时,编译器会根据传入的实参来推导出模板参数的类型。例如:

template<class T>
void f(T t) {}int x = 10; // x 是左值
f(x); // 调用f时,T被推导为int(注意而不是int&)
f(20); // 调用f时,T被推导为int

之所以调用f(x)时,T被推导为int,这是因为如果实参是一个左值,那么它会被当作一个右值来处理,除非模板参数的形式是T&或者T&&。例如:

template<class T>
void h(T t) {}template<class T>
void i(T& t) {}template<class T>
void j(T&& t) {}int x = 10; // x 是左值
h(x); // 调用h时,T被推导为int
i(x); // 调用i时,T被推导为int
j(x); // 调用j时,T被推导为int&

你可以看到,在调用h和i时,T都被推导为int,而在调用j时,T才被推导为int&。这是因为在j的模板参数中使用了&&符号,这样就触发了万能引用的机制。

当模板参数的形式为T&的时候:

template<class T>
void k(T& t) {}int x = 10; // x 是左值
k(x); // 调用k时,T被推导为int
k(20); // 调用k时,编译错误,因为不能把右值绑定到非常量左值引用上

你可以看到,在调用k时,如果传入一个右值,就会发生编译错误。这是因为右值是临时的,不能被修改或者延长其生命周期。如果想要让模板函数接受右值,可以使用常量左值引用或者右值引用作为模板参数的形式。

引用折叠

引用折叠是指在定义一个引用类型时,如果它本身就是一个引用类型,那么会发生如下的转换:

  • 左值引用& + 左值引用& = 左值引用&
  • 右值引用&& + 右值引用&& = 右值引用&&
  • 左值引用& + 右值引用&& = 左值引用&
  • 右值引用&& + 左值引用& = 左值引用&

例如:

int x = 10; // x 是左值
int &r1 = x; // r1 是左值引用
int &&r2 = 20; // r2 是右值引用// 引入了两个别名类型:
using LRef = int &;
using RRef = int &&;LRef &r3 = r1; // r3 的类型是 LRef &,即 int & &,经过折叠后变为 int &
RRef &&r4 = r2; // r4 的类型是 RRef &&,即 int && &&,经过折叠后变为 int &&
LRef &r5 = r2; // r5 的类型是 LRef &,即 int & &&,经过折叠后变为 int &
RRef &&r6 = r1; // r6 的类型是 RRef &&,即 int && &,经过折叠后变为 int &

结合这两个规则,我们就可以理解万能引用的工作原理。例如:

template<class T>
void g(T&& t) {}int x = 10; // x 是左值
g(x); // 调用g时,T被推导为int&(注意不是int),因此t的类型是int& &&// 经过折叠后变为int&(左值)
g(20); // 调用g时,T被推导为int(注意不是int&),因此t的类型是int &&// 经过折叠后仍然是int&&(右值)

你可以看到,在调用g时,t既可以绑定到左值上也可以绑定到右值上,并且保持了原来实参的属性。这就实现了万能引用。

http://www.tj-hxxt.cn/news/39356.html

相关文章:

  • 做网站办公室图片小程序推广50个方法
  • 两个网站链接怎么做百度一下下载安装
  • 盖州网站优化搜狗站长工具平台
  • 活动策划网站有哪些seo搜索优化排名
  • 甘肃园区网络搭建深圳搜索seo优化排名
  • 不同用户入口的网站样板免费的网站软件下载
  • 厦门建设工程信息造价网站网址怎么推广
  • linux做网站营销技巧第三季
  • 中铁建设集团网站哪个网站学seo是免费的
  • 技术支持公司做的网站怎么查万网是什么网站
  • 一键生成微信小程序平台西安seo公司哪家好
  • 余姚市建设局行政服务中心网站大二网络营销实训报告
  • 技术支持 上海做网站网络营销什么意思
  • 山西省住房和城乡建设厅门户网官方网站免费自制app软件
  • 做分析图超牛的地图网站关键词排名零芯互联关键词
  • 郴州网站seo外包app拉新项目推广代理
  • 网站公安网备案什么意思成品短视频app下载有哪些
  • 电商网站开发目的站长之家ip地址查询
  • 网站吸流量网络营销师证书有用吗
  • 做网站服务器价格多少合适今日头条官网首页
  • 贵州网站制作设计公司哪家好彩虹云商城网站搭建
  • 免费制图网站怎样在网上推广
  • phpcmsv9网站地图网络推广专员岗位职责
  • 网站模块设计怎么做百度seo软件首选帝搜软件
  • 用java如何做网站微信软文怎么写
  • 信息网官网百度词条优化工作
  • 网站设计的价格深圳网站建设运营
  • 全国建造师查询网站qq群排名优化软件
  • 北京中联建设集团官网网站百度关键词
  • 上海做网站公司qinmoo企业网络营销目标