【问题标题】:What is the difference between "and" and "&&" in c++c++中的“and”和“&&”有什么区别
【发布时间】:2021-07-12 09:29:48
【问题描述】:

最近我发现了一个代码,其中使用了关键字and,其工作方式类似于&&。那么它们是一样的还是有什么特定的使用条件呢?

【问题讨论】:

  • and&& 的替代名称。
  • 你甚至可以写像void foo(std::string and s)这样的暴行:-/
  • @Jarod42 信不信由你,我曾经在正式的代码审查中遇到过这样的案例。我还是不寒而栗。还有一次我有人抱怨编译器发出一个错误,大意是 X::operator&&(const X &) const 无法为某些类 X 重载 - 结果他试图同时提供 X::operator&&(const X &) constX::operator and(const X &) const - 相信他们不同。
  • @Peter:集中体现了&&and 不是等价运算符而是等价的tokens 的误解。出于这个原因,我决定回答

标签: c++ operator-keyword


【解决方案1】:

C++ 标准允许 token && 与 token and 互换使用。

并非所有编译器都正确实现了这一点(有些根本不打扰;有些则需要包含一个特殊的头文件)。因此,使用and 的代码可以被认为是特殊的。

等价是在记号而不是运算符级别的事实意味着自从C++11(语言获得了右值引用符号)以来,你可以安排事情(没有求助于预处理器)使得语句

int and _int(string and vector);

是一个有效的函数原型。 (相当于int&& _int(string&& vector)。)

【讨论】:

  • 即使在 c++11 之前,您也可以享受 bitand 的乐趣。
  • 许多同时是 C 和 C++ 编译器的编译器(例如,具有不同的开关)有许多类似的异常。在几种此类情况下,您所指的“特殊标头”是 C 标头 <iso646.h>,从内存中,它是在大约 1995 年作为 C 标准的修订(不是完整版本)引入的 - 并定义了 and等使用宏。 (<iso646.h> 通常在 C++ 中给出未定义的行为,因为它使用预处理器来处理 #define C++ 语言关键字,但如果您想要替代标记,某些 C++ 实现实际上需要它。
【解决方案2】:

可以看出here,它们是同一回事。

【讨论】:

    【解决方案3】:

    没有区别。 and 只是 && 的替代名称。

    https://en.cppreference.com/w/cpp/keyword/and

    【讨论】:

      【解决方案4】:

      and&& 没有什么不同

      and 运算符是 && 运算符的另一种表示形式(二进制或逻辑 AND)。

      你可以在这里看到完整的文章-

      http://docwiki.embarcadero.com/RADStudio/Sydney/en/And

      【讨论】:

        【解决方案5】:

        c++中“and”和“&&”有什么区别

        主要区别在于and不使用字符&。

        否则没有区别。

        有什么具体的使用条件吗?

        与其他替代标记(例如有向图)一起,它的存在是为了允许在具有字符编码(例如 BCD 或 ISO 646)且没有特殊符号(例如 &)的奇异系统上编写程序。

        除非您在需要使用替代令牌的系统上编写代码,否则您通常不应该使用它们。

        【讨论】:

          【解决方案6】:

          他们和运算符 si 他们的 && 名字

          【讨论】:

            【解决方案7】:

            and 运算符是&& 运算符的替代。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2017-08-25
              • 2010-09-23
              • 2021-08-11
              • 2011-07-29
              • 2022-09-25
              • 2021-11-08
              • 2011-03-10
              • 1970-01-01
              相关资源
              最近更新 更多