Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 未定义';不是';命令visual studio c++;_C++_Visual Studio 2012_Command - Fatal编程技术网

C++ 未定义';不是';命令visual studio c++;

C++ 未定义';不是';命令visual studio c++;,c++,visual-studio-2012,command,C++,Visual Studio 2012,Command,有一个键入的命令与的作用不同=作为一个不等于C++的比较。我在一本名叫“探索C++程序员介绍”的书中看到了如下: if(not x) { ... } if(非x){ ... } 我已将此而不是替换为和代码编译,但由于这本书已经使用了十几次,肯定有一些东西我错过了。显然,我可以全局定义它,也可以只编写,但我想知道该命令存储在哪个库中。如果要使用而不是、和等(不确定这是否是个好主意),并且您有VC++,请尝试添加此标题 #include <iso646.h> #包括 或 #

有一个键入的命令与
的作用不同=作为一个不等于C++的比较。我在一本名叫“探索C++程序员介绍”的书中看到了如下:

if(not x) {
   ...
}
if(非x){
...
}

我已将此
而不是
替换为
和代码编译,但由于这本书已经使用了十几次,肯定有一些东西我错过了。显然,我可以全局定义它,也可以只编写
,但我想知道该命令存储在哪个库中。

如果要使用
而不是
等(不确定这是否是个好主意),并且您有
VC++
,请尝试添加此标题

#include <iso646.h>
#包括

#包括
见:

上述标识符是ISO C++编程语言中的操作符关键字,不需要包含头文件。为了保持一致性,C++98标准提供了标题

。但是,后一个文件无效,为空。尽管有些编译器,如微软Visual C++,确实需要包含标题来使用这些标识符。
它当然被定义为C++中的另一个令牌,相当于<代码>!代码>(不到
!=
,可以写
不到
)。但听起来这可能是编译器自己制定规则的另一个领域。@MikeSeymour是正确的。然而,如果在编译过程中增加了不必要的歧义,为什么还要使用not而不是更常见的语法呢?这既是对OP的问题,也是对任何有这方面知识的人的问题。AlexD回答了这个问题@迈克·西摩的
=0
是可互换的。我认为这些替代标记是为可读性而设计的,C#对此进行了扩展。我使用的是MS Visual Studio 2013,它仅使用您提到的两个标题进行编译。@GavinHull正确。VS2013使用VC++(Microsoft Visual C++),它确实需要一个标题。
#include <ciso646>