Ich hätte da wohl eher die ifthen()-Funktionen per Compilerschalter zum Ternary-Operator gemacht. Oder vielleicht stattdessen eine iif()-Funktion eingeführt. Aber das hätte natürlich zu Inkompatibilitäten für existierenden Code führem können.
Funktionen lösen das Problem nicht und eine unsichtbare Compiler-Magic ist auch nicht wirklich intuitiv. Es ist ja schon nicht mal sicher dass
inline
immer das macht was man erwartet.
Eine neue Funktion iif(<condition>, <truevalue>, <falsevalue>), die per Compiler Magic als Ternary Operator fungiert, also anhand der <condition> nur <truevalue> oder <falsevalue> auswertet, wäre sehr wohl möglich gewesen. Dass sie immer als solche funktioniert hätte man genauso erzwingen könnnen wie für die (if <condition> then <truevalue> else <falsevalue>) Syntax. Damit hätte sich die Frage nach der Operator-Priorität auch erledigt gehabt. Wollte man aber nicht.
Gab es den Ternary Operator nicht schon in Free Pascal? Hm, nee, anscheinend nicht, zumindest findet Ecosia nichts.