我正在阅读/编译开源软件包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 ++标准吗?为什么英特尔编译器不支持语法?
答案 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 ++中重载运算符的内容。