<p>Am 02.02.2016 12:03 schrieb "Serguei TARASSOV" <<a href="mailto:serge@arbinada.com">serge@arbinada.com</a>>:<br>
><br>
> On 02/02/2016 11:42, <a href="mailto:fpc-pascal-request@lists.freepascal.org">fpc-pascal-request@lists.freepascal.org</a> wrote:<br>
>><br>
>> On Tue, 2 Feb 2016, Sven Barth wrote:<br>
>><br>
>> >No, the second is always better because safer.<br>
>> ><br>
>> >x := iif (Obj = nil, 0, Obj.Value);<br>
>> >This will raise access violation as a normal function or you depend on<br>
>> compiler implementation for this special case. And you should remember an<br>
>> additional special case of function.<br>
>><br>
>> That's why the current IfThen() is an intrinsic, to allow this.<br>
><br>
> Why make the things complex? Why create another "special case"?<br>
> Look at the "iif" as an statement and the things will be simple.</p>
<p>BECAUSE. IT. IS. *NOT*. A. STATEMENT!<br>
It never was and it never will be! It returns a value and thus by definition it is an expression!</p>
<p>Regards,<br>
Sven</p>