这是我见过的唯一一个地方and,or并被not列为C++中的实际运算符.当我在NetBeans中编写一个测试程序时,我得到了红色下划线,好像有一个语法错误,并认为该网站是错误的,但它是错误的NetBeans,因为它编译并按预期运行.
我可以看到!受到青睐,not但and&& 的可读性or似乎比他们的语法兄弟更大.为什么这些版本的逻辑运算符存在,为什么看似没有人使用它?这是真正有效的C++还是与语言中包含的C的某种兼容性?
可能重复:
逻辑运算符的书面版本.
我注意到,c + +定义关键字and,or,not,xor,and_eq,or_eq,not_eq和xor_eq作为替代&&,||,!,^,&=,|=,!=和|=.他们很少使用!怎么了?它们不便携吗?
可能重复:
或者无效C++:为什么这段代码会编译?
你好.
我最近遇到了别人写的不寻常的C++代码:
bool operator != (Point p1, Point p2)
{
return p1.X != p2.X or p1.Y != p2.Y or p1.Z != p2.Z;
};
Run Code Online (Sandbox Code Playgroud)
据我所知or,即使是宏,也没有在任何地方声明.and代码中也很少有.因此,项目不构建在VC2008 Express上.给我代码的人说作者一直在使用mingw编译器.
问题:这是一个非标准的编译器功能(我怀疑它),这是新的C++标准的一部分(我没有看过C++ 0x),或者这是程序员的问题(如果这个人搬家了)来自pascal,他可能一直在使用和/或代替&&/ ||因为习惯,或者因为他认为它更"可读".