E2015 Operator ist auf diesen Operandentyp nicht anwendbar (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Diese Fehlermeldung wird ausgegeben, wenn ein Operator nicht auf die Operanden angewandt werden kann, denen er übergeben wurde – beispielsweise wenn ein Boolescher Operator auf einen Zeiger angewandt wird.


program Produce;
var
  P: ^Integer;
begin
  if P and P^ > 0 then
    Writeln('P points to a number greater 0');
end.

Hier war sich ein C++ Programmierer über die Operatorpriorität in Delphi nicht im klaren; P ist kein Boolescher Ausdruck, und der Vergleich muss in runde Klammern gesetzt werden.


program Solve;
var
  P: ^Integer;
begin
  if (P <> nil) and (P^ ;> 0) then
    Writeln('P points to a number greater 0');
end.

Wenn wir P explizit mit nil vergleichen und runde Klammern verwenden, ist der Compiler rundum zufrieden.