Ben Grasset via fpc-pascal <fpc-pascal@lists.freepascal.org> schrieb am Mi., 6. Nov. 2019, 15:43:
> On Wed, Nov 6, 2019 at 2:01 AM Sven Barth via fpc-pascal < > fpc-pascal@lists.freepascal.org> wrote: > >> A normal if-statements has the same non-evaluation. >> > > Not in the way I meant, though. > > Like, I thought the difference between "normal if" and "ternary if" was > supposed to be the same as the difference between the existing IfThen() > function and the intrinsic version of IfThen(), on which you based the > "if-then-else" syntax I think. > No. The difference between the currently provided IfThen<> generic is the same in regards to evaluation to the rejected IfThen intrinsic, an if-expression and an if-statement: All four typecheck their branches, but only the later three don't execute the statements in the branch that is not taken (and also have a branch optimised away if the condition is const). The only difference between the if-expression and the if-statement is that the former can be used as an expression (duh!). The point being that the type-checking is neither useful or necessary in > scenarios where the branch being evaluated is statically known to be > unreachable ahead of time. > Pascal has a strong type safety, thus something like the if-expression won't be used/allowed to weaken that. If that means that some things can't be implemented in generics the "easy" way, then so be it. Regards, Sven >
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal