Am 02.02.2016 11:27 schrieb "Michael Van Canneyt" <mich...@freepascal.org>: > > > > On Tue, 2 Feb 2016, Serguei TARASSOV wrote: > >> On 02/02/2016 10:54, fpc-pascal-requ...@lists.freepascal.org wrote: >> >>> On Tue, 2 Feb 2016, Michael Van Canneyt wrote >>>> >>>> >>>> On Tue, 2 Feb 2016, Serguei TARASSOV wrote: > No, the second is always better because safer. >>>> > >>>> >x := iif (Obj = nil, 0, Obj.Value); >>>> >This will raise access violation as a normal function or you depend on >>>> >compiler implementation for this special case. And you should remember an >>>> >additional special case of function. >>>> > >>>> >x := iif Obj = nil then 0 else Obj.Value; >>>> >Doesn't raise AV because it's a statement, not function. >>> >>> It is not a statement, it is an expression. >> >> ??? >> iif is a new statement "inline if". >> It contains other statements "then" "else" >> It returns a value like an assignment statement ":=" in Pascal or "return" in C-like languages. >> It may be used without assignment: >> >> {$IFDEF DEBUG} >> x := >> {$ENDIF} >> iif Obj = nil then 0 else Obj.DoSomethingAndReturnValue; > > > I doubt this is what Sven implemented/will implement. The assignment will always be needed. > But Sven will have to comment on that.
Indeed. Regards, Sven
_______________________________________________ fpc-pascal maillist - fpc-pascal@lists.freepascal.org http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal