Ich war immer der Auffassung, dass der Unterschied zwischen ||/&& und |/& darin liegt, dass ersteres Optimierung zulässt, und letzeres immer zur Vollauswertung des Ausdrucks führt. Also das, was man bei Delphi über die Compileroptionen nur global einstellen kann ("Boolsche Ausdrück vollständig auswerten" heisst die
imho).
Das ist nicht ganz korrekt. Durch die Verwendung von
$B bzw.
$BOOLEVAL kannst du das lokal einstellen. Siehe auch
hier.
Gruß,
Sven