Ich habe & lt;? = und & gt;? = in einem Code verwendet: Ссылка
Ich habe versucht, ohne die Includes zu kompilieren, um zu testen, ob es Standard ist, aber es hat nicht funktioniert. Ich fügte dann die Includes hinzu, aber es gibt immer noch den gleichen Fehler:
%Vor%question-mark.cpp: 15: 5: Fehler: erwarteter primärer Ausdruck vor '?' Token Fragezeichen.cpp: 15: 6: Fehler: erwarteter primärer Ausdruck vor '=' token Fragezeichen.cpp: 15: 9: Fehler: erwartet ':' vorher ';' Token Fragezeichen.cpp: 15: 9: Fehler: erwarteter primärer Ausdruck vor ';' token
So wird es im Code des Links verwendet:
%Vor%Wie kann ich das schaffen?
Dies sind GCC-Erweiterungsoperatoren. a <?= b
hat dieselbe Bedeutung wie a = min(a, b)
( >?=
ist der Operator "max"), aber es wertet seinen Ausdruck auf der linken Seite nur einmal aus. Dies ist nicht wichtig, wenn a
eine Variable ist, aber es kann einen Unterschied machen, wenn a
einen Ausdruck darstellt, insbesondere wenn der Ausdruck einen Nebeneffekt hat. Zum Beispiel in
Die ++
in dest++
würde nur einmal ausgewertet werden.
Beide Operatoren wurden jetzt veraltet .
Es ist eine GCC-Erweiterung. x >?= y
entspricht:
Ich habe es schon lange nicht mehr benutzt.
Tags und Links c++ overloading variable-assignment operator-keyword