是否可以在gcc中关闭对"和"/"或"布尔运算符用法的支持?

Joe*_*ery 5 c++ compiler-construction syntax gcc boolean

GCC似乎允许使用"和"/"或"而不是"&&"/"||" 在C++代码中; 但是,正如我所料,许多编译器(特别是MSVC 7)不支持这一点.GCC允许这一事实给我们带来了一些烦恼,因为我们有不同的开发人员在多个平台上处理相同的代码库,偶尔,当人们在Python和C++开发之间来回切换时,这些"错误"会随之而来.

理想情况下,我们都会记得使用适当的语法,但对于我们偶尔搞乱的情况,如果GCC不让它滑动,那将是非常好的.有人对此采取何种方法?

如果"和"和"或"只是#defines那么我在使用GCC时可以#undef,但我担心它更可能在更基础的层次上内置到编译器中.

谢谢.

Ces*_*arB 17

它们是C++标准的一部分,例如参见StackOverflow答案(引用标准的相关部分).

同一问题的另一个答案提到了如何做相反的事情:让它们在MSVC中工作.

要在GCC中禁用它们,请使用-fno-operator-names.请注意,通过这样做,您实际上是在转换为非标准的C++方言,并且存在最终编写可能无法在符合标准的编译器上正确编译的代码的风险(例如,如果您声明了变量,通常保留名称.


Jon*_*ler 7

这些单词在C++中是标准的,不包含任何标题.

如果包含标题,则单词在C中是标准的<iso646.h>.

MSVC通过不支持标准为您提供服务.

但是,您可以使用工具强制不使用关键字.它可以作为编码指南,您可以快速培训您的团队,不要犯愚蠢的可移植性错误.避免这个问题并不难.