gpt4 book ai didi

c++ - 是否可以在 gcc 中关闭对 "and"/"or" boolean 运算符使用的支持?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:51:50 25 4
gpt4 key购买 nike

GCC 似乎允许使用“and”/“or”代替“&&”/“||”在 C++ 代码中;然而,如我所料,许多编译器(尤其是 MSVC 7)不支持这一点。 GCC 允许这样做的事实给我们带来了一些烦恼,因为我们有不同的开发人员在多个平台上使用相同的代码库,偶尔,当人们在 Python 和 C++ 开发之间来回切换时,这些“错误”会出现。

理想情况下,我们都会记得使用适当的语法,但对于那些我们偶尔会搞砸的情况,如果 GCC 不让它溜走,那就太好了。有人对此有任何想法吗?

如果“and”和“or”只是#defines,那么在使用 GCC 时我可以使用#undef,但我担心它更有可能在更基础的层面上内置到编译器中。

谢谢。

最佳答案

它们是 C++ 标准的一部分,例如参见 this StackOverflow answer (其中引用了标准的相关部分)。

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

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

关于c++ - 是否可以在 gcc 中关闭对 "and"/"or" boolean 运算符使用的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1069352/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com