C++中的一个奇怪的语法不是operator ==

Cha*_* YU 1 c++ visual-c++ c++11

我正在阅读/编译一个开源软件包Trilinos.源代码可以在Github上找到.我发现以下奇怪的语法导致与英特尔编译器(Windows)的编译错误,而Ubuntu中的gcc 4.9.x工作.

bool Slice::operator!=(const Slice & slice) const
{
  return (not operator==(slice));
} 
Run Code Online (Sandbox Code Playgroud)

错误消息是:

Severity    Code    Description Project File    Line    Suppression State
Error       identifier "not" is undefined   domi    .\packages\domi\src\Domi_Slice.hpp  475 
Run Code Online (Sandbox Code Playgroud)

问题:
1>上述语法是什么意思?
2>这是C++标准吗?为什么英特尔编译器不支持语法?

Bo *_*son 5

英特尔编译器正在模拟较旧的VC++版本,作为扩展(真的!),禁用这些备用运算符.

你可以通过包含<iso646.h>标题再次取回它们.

或者只是使用!而不是not.