可能重复:
C++ alternative tokens?
我正在和我的一个朋友一起做C ++作业,我们一直在他的计算机/环境(带有Eclipse的Macbook Pro)上进行大量编码。在某些代码中,他使用and
和or
而不是&&
和||
编写了条件。代码在他的计算机上编译得很好,但是当我尝试在家里的计算机上编译它(使用Visual Studio 2010的PC)时,我遇到编译器错误并被迫切换它们。我的朋友也证明这种语法在Linux环境中使用emacs / g ++。
我以前从未见过这种类型的东西。这是广泛使用还是大多数编译器支持?
答案 0 :(得分:9)
有一些“替代陈述”:and
,and_eq
,bitand
,bitor
,compl
,not
,{ {1}},not_eq
,or
,or_eq
和xor
。它们是C ++的标准语言特性。
如果使用xor_eq
(标准一致性模式)标志进行编译,Visual C ++仅支持这些作为关键字。
答案 1 :(得分:6)
答案 2 :(得分:3)
他们被称为operator synonyms,他们显然是标准的一部分,但我不确定他们的支持程度如何。
答案 3 :(得分:1)
您可以将define
添加到顶部以解决问题吗?
#define and &&
#define or ||
答案 4 :(得分:-1)
由源代码中的编译器扩展或其他地方的#define
引起,可能来自iso646.h
define
or
||
为and
并&&
为not
。您可能还会看到使用!
代替or
的内容。
如果它是编译器扩展,并且您希望避免必须通过并将所有and
和||
更改为&&
和#define
,只需添加一些{ {1}}你自己在顶部:
#define or ||
#define and &&