C ++写'或'而不是||

时间:2011-05-15 04:39:20

标签: c++ syntax

  

可能重复:
  C++ alternative tokens?

我正在和我的一个朋友一起做C ++作业,我们一直在他的计算机/环境(带有Eclipse的Macbook Pro)上进行大量编码。在某些代码中,他使用andor而不是&&||编写了条件。代码在他的计算机上编译得很好,但是当我尝试在家里的计算机上编译它(使用Visual Studio 2010的PC)时,我遇到编译器错误并被迫切换它们。我的朋友也证明这种语法在Linux环境中使用emacs / g ++。

我以前从未见过这种类型的东西。这是广泛使用还是大多数编译器支持?

5 个答案:

答案 0 :(得分:9)

有一些“替代陈述”:andand_eqbitandbitorcomplnot,{ {1}},not_eqoror_eqxor。它们是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 &&