Isn't that the same as saying that IfThen(Boolean,Arg1,Arg2) can be used in exchange for the ternary operator as it will be applied only to constant/simple Arg1,Arg2 expressions?
No, it's the same as saying that the compiler will reject any attempt to use it for other than simple expressions.
I believe that IfThen()'s behaviour is well documented, but in any event it can be inferred from the fact that it's a standard function which can be expected to evaluate its parameters in the same way as any other function.
The developers have- at various times in the forum etc.- told us why they don't like += . However I do not believe that these objections have been marshalled into any of the manuals, and there is definitely nothing that says "Don't use these" (which could include a deprecation or portability marker).
"In addition to the standard Pascal assignment operator (:=), which simply replaces the value of the variable with the value resulting from the expression on the right of the := operator, Free Pascal supports some C-style constructions ... These constructions are just for typing convenience, they don’t generate different code."
In what way does that constitute a "there are conditions under which this fails" warning?
MarkMLl