C++ VisualStudio 2013中的替代代币(非、和等)

C++ VisualStudio 2013中的替代代币(非、和等),c++,visual-studio-2013,C++,Visual Studio 2013,“不”、“和”等。。。是C++中的关键字(C中的宏)。在Visual Studio 2013中是否有任何方法可以“启用”它们?我可以将这些单词用作包含iso646.h的宏。但是VS似乎无法将它们识别为关键字。使用/Za似乎可以在不包含iso646.h的情况下启用它们,以下程序在不使用/Za的情况下生成错误,但在其他情况下运行正常: int main() { int x = 1, y = 0 ; if (x and y) { //... }

“不”、“和”等。。。是C++中的关键字(C中的宏)。在Visual Studio 2013中是否有任何方法可以“启用”它们?我可以将这些单词用作包含
iso646.h
的宏。但是VS似乎无法将它们识别为关键字。

使用
/Za
似乎可以在不包含
iso646.h
的情况下启用它们,以下程序在不使用
/Za
的情况下生成错误,但在其他情况下运行正常:

int main()
{
    int x = 1, y = 0 ;
    if (x and y)    
    {
    //...  
    }

    return 0;
}
由于ta.speot.is指示禁用扩展,以下指示必须包括
ios646.h
否则:

int main()
{
    int x = 1, y = 0 ;
    if (x and y)    
    {
    //...  
    }

    return 0;
}
如果要使用以下运算符的文本形式,则必须在/Ze下包含iso646.h:

下面列出了可供选择的代币

注意,我知道我以前看到过这个,我在一个类似的问题中包含了一个链接。尽管这不包括上述解决方法

注2:干杯和hth。-Alf指出,关闭扩展可能会产生许多不良后果,因此最好只包含
iso646.h

使用
iso646.h
标题

对于在命令解释器中的工作,您可以将其放在
CL
环境变量中,或例如放在响应文件中



关闭VisualC++语言扩展,使用<代码> /ZA也可以做到这一点,但代价是使编译器“非常强大”>无用< /强> -因为微软代码(如Windows API标头一般使用扩展名。

< P>在VS的更新版上(测试版本7.7.0预览3);确保为visual studio设置了一致性模式:


然后用编译。

我可以将这些单词用作包含iso646.h的宏。但是VS似乎无法将它们识别为关键字。你是说它工作,但你没有语法高亮?@ TA.Seop.I:他说C++中应该把它们识别为没有标题的关键字,但是现在他必须使用一个头来识别它们。记住“VS”是不是编译器的VisualStudio。但是VS似乎无法将它们识别为关键字。如果你所说的是正确的,根据手册,这是完全可以预料的。not运算符是文本的等价物!。在程序中有两种方法来访问非操作符:包括头文件ISO64 6. h,或者用/ZA(禁用语言扩展)编译器选项编译。尝试/ZOPopTIt不是关闭Visual C++扩展的好主意,因为很可能有很多微软代码不会编译。而是使用iso646的强制包含。h@Cheersandhth.-谢谢你的评论,调整后的答案。我很好奇你有什么例子吗?比如,包括
失败。