当前位置:  开发笔记 > 编程语言 > 正文

在C++中引入'和'和'或'替代令牌是什么时候?

如何解决《在C++中引入'和'和'或'替代令牌是什么时候?》经验,为你挑选了3个好方法。

我刚读过Reddit的这篇精彩文章.

他们提到and,并or成为"替代令牌",以&&||

到目前为止我真的没有意识到这些.当然,每个人都知道的二图和三图表,但andor?从何时起?这是标准的最新成员吗?

我刚刚使用Visual C++ 2008进行了检查,它似乎并没有将这些视为语法错误.这是怎么回事?



1> paxdiablo..:

从C++ 11标准来看,2.6/ Alternative tokens:

    为某些运营商和标点符号提供了替代令牌表示.

    在语言的所有方面,除了拼写之外,每个备选令牌的行为分别与其主令牌相同.表2中定义了替代令牌集.

表2 - 替代代币

alternative primary | alternative primary | alternative primary
--------------------+---------------------+--------------------
   <%          {    |    and         &&   |    and_eq      &=
   %>          }    |    bitor       |    |    or_eq       |=
   <:          [    |    or          ||   |    xor_eq      ^=
   :>          ]    |    xor         ^    |    not         !
   %:          #    |    compl       ~    |    not_eq      !=
   %:%:        ##   |    bitand      &    |



2> Michael Burr..:

仅当您使用/Za禁用扩展的选项时,MSVC才支持它们作为关键字; 这至少从VC7.1(VS2003)开始.

您可以通过包含来支持它们作为宏iso646.h.

我的猜测是他们认为默认情况下将它们设为关键字会破坏现有代码(如果它们是正确的话我也不会感到惊讶).

几个星期前在这里的一个问题上讨论了这个问题,但是我无法通过SO的搜索或谷歌找到该死的东西.


所以Python是50倍酷,因为你可以写`和`,而C一直都是这个功能.
我发现这个链接看似相关.错误描述"Visual C++ 2012编译器和iso646.h在逻辑运算符的替代令牌的使用方面不符合C++ 11标准"状态已关闭为延迟.https://connect.microsoft.com/VisualStudio/feedback/details/751912/alternative-tokens-for-logical-operators-c-11

3> Martin Bonne..:

要真正回答这个问题:

它们是在第一个C++标准中定义的.

推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有