我一直在查看the c++ reference site,并且偶然发现this article关于and_eq
关键字。这篇文章说:
替代运算符:作为&=
的替代
关于and_eq
运算符。我找不到关于and_eq
和&=
之间的区别的任何在线信息。它与&=
运算符完全相同,还是有所不同?如果有区别,我应该何时使用它们?
答案 0 :(得分:3)
如果您在链接的页面上单击“ alternative operators”链接,则会看到以下文本:
一些使用非ISO646字符的运算符和其他标记具有替代的拼写。 在语言的所有方面,每个替代标记的行为都与其主要标记完全相同,除了其拼写方式(字符串化运算符可以使拼写可见)。两个字母的替代标记有时也称为“有向图”
请注意,某些编译器默认情况下是非标准的,并且不允许使用替代拼写,因此您将强制执行标准合规性模式以使用替代拼写,或者仅使用主要拼写。 / p>
答案 1 :(得分:0)
如果您#include <iso646.h>
定义了替代运算符(至少在我的Visual Studio 2017机器上),则实际上是同一件事:
#define and_eq &=
#define bitand &
#define bitor |
#define compl ~
#define not !
#define not_eq !=
#define or ||
#define or_eq |=
#define xor ^
#define xor_eq ^=