重用“&&”标记以进行右值引用的基本原理?

Posted

技术标签:

【中文标题】重用“&&”标记以进行右值引用的基本原理?【英文标题】:Rationale behind reuse of "&&"-token for rvalue reference? 【发布时间】:2012-06-25 09:10:23 【问题描述】:

我最近举办了一个关于 C++11 的演讲,主要关注右值和移动语义。在演示过程中,提出了一个问题,即为什么标准委员会决定重用“&&”-token,而不是引入像“§”这样的新令牌。

有没有人发现重用 && 的基本原理?

【问题讨论】:

【参考方案1】:

委员会想要一个美式键盘上的令牌。我们还需要一些不会破坏现有代码的东西。 && 似乎是一个显而易见的令牌。我们还在寻找对标准进行最小限度的更改,并且重用代币而不是发明新代币的想法很有吸引力。

我感谢 John Spicer (EDG) 在 2002 年 4 月的库拉索会议上首次建议将 && 作为代币。

【讨论】:

请注意,他们可以使用@符号,这在标识符中是被禁止的,并且在语言的任何地方都没有使用。 现在我很困惑,美国版面中没有 § 吗?顺便说一句:标识符中禁止使用 @ 有什么明显的原因吗? (考虑到如何使用大多数键盘上不存在的大量字符......) 不使用全新的令牌还有一个好处是不会破坏人们可能在生产中使用的任何自定义源代码预处理。 @MFH:“现在我很困惑,美国版面中没有 § 吗?”不,不是。它也不是 ASCII 字符。 @PeterT:但是那些解析器也可能会阻塞 &&,要么他们会将其解释为对显然不是有效 C++03 的引用的引用,要么他们会将其解释为布尔值而且,这也无效..我认为他们更有可能忽略#$等新令牌

以上是关于重用“&&”标记以进行右值引用的基本原理?的主要内容,如果未能解决你的问题,请参考以下文章

从4行代码看右值引用

转载右值引用

右值引用&&

❥关于C++之右值引用&移动语义┇移动构造&移动复制

模板参数的“右值引用”是转发引用

右值引用重载 && 运算符