gpt4 book ai didi

c++ - 为什么 VS 不为逻辑运算符定义替代标记?

转载 作者:IT老高 更新时间:2023-10-28 12:55:44 27 4
gpt4 key购买 nike

替代标记是 valid c++ keywords ,但在 Visual Studio 2013 中,以下会发出编译错误(未声明的标识符):

int main(int argc, const char* argv[])
{
int k(1), l(2);
if (k and l) cout << "both non zero\n";

return 0;
}

既然and or not已经存在了很长一段时间,是否有理由不实现它们

最佳答案

您询问原因。这是一个可能的原因,不一定是对 Visual C++ 团队影响最大的原因:

  1. 这些是 C 中的有效标识符。
  2. 长期以来,Microsoft 的建议是对 C 和 C++ 代码都使用 C++ 模式,而不是维护现代 C 编译器。
  3. 使用这些作为标识符的有效 C 代码如果被编译为关键字,将会无缘无故地中断。
  4. 尝试编写可移植 C++ 的人大多使用 /permissive-/Za 以获得最大的一致性,这将导致这些被视为关键字。
  5. 通过包含头文件将它们视为/Ze 中的关键字的解决方法既简单又可移植。 (G++ 的解决方法 -fno-operator-names 也不错,但是将选项放在源代码中而不是构建系统中会更好一些。)

关于c++ - 为什么 VS 不为逻辑运算符定义替代标记?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24414124/

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