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

时间:2018-04-21 13:08:39

标签: c++ c++11 visual-c++

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

bool Slice::operator!=(const Slice & slice) const
{
  return (not operator==(slice));
} 

错误消息是:

Severity    Code    Description Project File    Line    Suppression State
Error       identifier "not" is undefined   domi    .\packages\domi\src\Domi_Slice.hpp  475 

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

2 个答案:

答案 0 :(得分:5)

英特尔编译器正在模拟较旧的VC ++版本,作为扩展(真的!),禁用了这些alternate operators

您可以通过加入<iso646.h> header来重新获得它们。

或者只使用from django import forms from events.models import Event class EventForm(forms.ModelForm): level = forms.ChoiceField(choices=[("RT","RT"), ("RT+","RT+"), ("RI", "RI"), ("RI+", "RI+"), ("RS", "RS"), ("RS+", "RS+"), ("RE", "RE")]) class Meta: model = Event labels = { "title": "Titre de l'évènement", "level": "Niveau de la randonnée", # HERE: wont rename the label "map_url": "Lien Google Map de l'itinéraire", "date": "Date et heure de l'activité (au format DD/MM/YYYY HH:MM)" } exclude = ("slug",) 代替!

答案 1 :(得分:0)

not只是一个简单的否定(如!= 使用的单词operator表示定义在单词operator后看到的运算符的含义 - 阅读有关在C ++中重载运算符的内容。