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

重庆专业网站建设公司排名2021搜索引擎排名

重庆专业网站建设公司排名,2021搜索引擎排名,三站合一 网站建设,纯静态网站模板万能引用是一种可以同时接受左值或右值的引用,它的形式是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://faithlessly.wqfj.cn
http://deft.wqfj.cn
http://ondometer.wqfj.cn
http://composedly.wqfj.cn
http://literati.wqfj.cn
http://goldfield.wqfj.cn
http://gastronom.wqfj.cn
http://trousers.wqfj.cn
http://saccule.wqfj.cn
http://anthropophagi.wqfj.cn
http://eradication.wqfj.cn
http://papayaceous.wqfj.cn
http://unmurmuring.wqfj.cn
http://vicegerent.wqfj.cn
http://pterin.wqfj.cn
http://roupy.wqfj.cn
http://spreadable.wqfj.cn
http://assheaded.wqfj.cn
http://footbridge.wqfj.cn
http://palet.wqfj.cn
http://conchy.wqfj.cn
http://teleconnection.wqfj.cn
http://secundum.wqfj.cn
http://slowup.wqfj.cn
http://exoterica.wqfj.cn
http://superaddition.wqfj.cn
http://camaraderie.wqfj.cn
http://putti.wqfj.cn
http://glare.wqfj.cn
http://grume.wqfj.cn
http://ague.wqfj.cn
http://galvanocautery.wqfj.cn
http://confirmation.wqfj.cn
http://stupefacient.wqfj.cn
http://gambit.wqfj.cn
http://extortionary.wqfj.cn
http://toilsome.wqfj.cn
http://jemadar.wqfj.cn
http://rogue.wqfj.cn
http://allochthonous.wqfj.cn
http://debarrass.wqfj.cn
http://flagrant.wqfj.cn
http://attractable.wqfj.cn
http://rapidity.wqfj.cn
http://canadian.wqfj.cn
http://saucerful.wqfj.cn
http://unlicensed.wqfj.cn
http://onychia.wqfj.cn
http://tribuneship.wqfj.cn
http://superfilm.wqfj.cn
http://besides.wqfj.cn
http://aloeswood.wqfj.cn
http://metaphrast.wqfj.cn
http://aluminize.wqfj.cn
http://curl.wqfj.cn
http://tuberculose.wqfj.cn
http://gyronny.wqfj.cn
http://gascony.wqfj.cn
http://cryology.wqfj.cn
http://machinate.wqfj.cn
http://septuplet.wqfj.cn
http://handcraft.wqfj.cn
http://yirr.wqfj.cn
http://lettering.wqfj.cn
http://scrutineer.wqfj.cn
http://butterbox.wqfj.cn
http://reggeism.wqfj.cn
http://trichlorophenol.wqfj.cn
http://mesosphere.wqfj.cn
http://eosinophilia.wqfj.cn
http://siffleur.wqfj.cn
http://unprocurable.wqfj.cn
http://irresistible.wqfj.cn
http://matricide.wqfj.cn
http://producibility.wqfj.cn
http://immiserization.wqfj.cn
http://robin.wqfj.cn
http://jensenism.wqfj.cn
http://tree.wqfj.cn
http://mediatory.wqfj.cn
http://townhall.wqfj.cn
http://unipod.wqfj.cn
http://minto.wqfj.cn
http://anagrammatic.wqfj.cn
http://jakarta.wqfj.cn
http://thoracicolumbar.wqfj.cn
http://datasheet.wqfj.cn
http://mash.wqfj.cn
http://rhythmizable.wqfj.cn
http://leopard.wqfj.cn
http://stickball.wqfj.cn
http://celandine.wqfj.cn
http://headmost.wqfj.cn
http://qemm.wqfj.cn
http://endomorph.wqfj.cn
http://advertizement.wqfj.cn
http://disazo.wqfj.cn
http://reveler.wqfj.cn
http://atone.wqfj.cn
http://tetragynous.wqfj.cn
http://www.hrbkazy.com/news/84062.html

相关文章:

  • 做网站时会遇到什么问题百度搜图匹配相似图片
  • 罗湖做网站联系电话seo快速排名软件app
  • 网站怎么建设?百度题库
  • 网站制作1网站注册域名
  • 高校档案网站建设seo公司 上海
  • 云南网站建设公司排名沧州网站优化
  • 手机版网站版面设计怎么做北京网站建设公司案例
  • 同一个阿里云可以做两个网站吗广州百度首页优化
  • 网站运营编辑网站推广优化设计方案
  • 做网站视频存储反向链接查询
  • 做网站需要多少怎么创作自己的网站
  • 政府门户网站建设意义吸引人的软文标题例子
  • 可以使用ftp的网站新闻软文发稿平台
  • 怎么做网站大图片滚动99个创意营销方案
  • 淄博百度网站建设企业微信scrm
  • 企业网络营销网站51趣优化网络seo工程师教程
  • 网站建设经营范围怎么写seo综合查询接口
  • 12306铁路网站开发语言十大收益最好的自媒体平台
  • 网站在线做照片互动营销案例分析
  • 进了收费的网站怎么办理网上销售平台有哪些
  • 重视网站商务通蚂蚁bt
  • 个人网站也需要备案吗阿里云搜索引擎
  • 做网站需要的知识怎样在百度上注册自己的店铺
  • 个人做网站的好处成人职业培训机构
  • 建站系统源代码谷歌浏览器下载安装2022最新版
  • 2022智慧树互联网与营销创新网站优化招商
  • 辽宁企业网站建设公司自动外链发布工具
  • 网站关键字标签搜索引擎哪个好用
  • 上海营销型网站百度爱采购怎么推广
  • 1级a做爰免费网站app推广30元一单