Boolean short-circuit evaluation (Object Pascal compiler directive)

From Appmethod Topics
Jump to: navigation, search

Go Up to Object Pascal Compiler Directives (List) Index

Type

Switch

Syntax

{$B+} or {$B-} {$BOOLEVAL ON} or {$BOOLEVAL OFF}

Default

{$B-} {$BOOLEVAL OFF}

Scope

Local



Remarks

The $B directive switches between the two different models of Object Pascal code generation for the and and or Boolean operators.

In the {$B+} state, the compiler generates code for complete Boolean expression evaluation. This means that every operand of a Boolean expression built from the and and or operators is guaranteed to be evaluated, even when the result of the entire expression is already known.

In the {$B-} state, the compiler generates code for short-circuit Boolean expression evaluation, which means that evaluation stops as soon as the result of the entire expression becomes evident in left to right order of evaluation.

See Also