繁体   English   中英

在右值参考中键入更改

[英]Type change in rvalue reference

我可以知道为什么这段代码是有效的。谢谢。

  double i=5;//int i=5 will invalidate this piece of code
    int && r1=i;
    std::cout<<r1<<std::endl;

[dcl.init.ref] / 1宣布为一个的变量T&T&& ,即,“参考输入T ”(8.3.2),应以一个对象,或功能来初始化类型的, T或通过可以转换为T

[dcl.init.ref] / 5类型“ cv1 T1 ”的引用由类型为“ cv2 T2 ”的表达式初始化,如下所示:

...

(5.2.2.2) - 如果T1是非类类型,则创建临时类型为“ cv1 T1 ”并从初始化表达式复制初始化(8.5)。 然后将引用绑定到临时。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM