E2015 Operator ist auf diesen Operandentyp nicht anwendbar (Delphi)
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.