(If +=, -= etc. would have been copied from Algol68 and not from C, it would
have been written +:= -:=, which looks more pascal-like. And the acceptance
for these constructs would be wider, I assume. Just an optical note to that
theme).
Beside of the question, if ++,--,+=,etc. fit into Pascal or not, there stays
the question: is it a plus?
I expected that
a[i] += 3
compiles better than
a[i] := a[i] + 3
I expected that the computation of a[i] is done only once, but the produced
code is the same, the address of a[i] is computed twice.
So the whole construct is only a typing saving.
Compilation done with FP 2.6.2, winxp, 32-bit)
Constructs like I++, ++I are nice shortcuts (and sometimes the code can be
better readable), but have only a real value, if the produced code is a bit
optimized.
standard:
i := i + 1 ;
a[i] := 3
with ++:
a[++i] := 3 ;
Could save one (or two) assembler statements!
And now let's wait for people who want to see "a[++i++] := 2" in the
language!
Gerhard
----- Original Message -----
From: "Marco van de Voort" <mar...@stack.nl>
To: "FPC-Pascal users discussions" <fpc-pascal@lists.freepascal.org>
Sent: Tuesday, July 30, 2013 8:37 PM
Subject: Re: [fpc-pascal] Re: ++ and --
In our previous episode, Mattias Gaertner said:
> Also +=, etc are not true operators in FPC like they are in e.g. C++,
> but they are internally translated to "a := a + b", etc. So potential
> sideeffects need to be remembered here.
That's not entirely true. For example "a:=a+b" is allowed for
properties, while "a+=b" is not allowed for properties.
I think Sven meant that a is only evaluated once. (in case it is an
expression). Not that it operates on all types.
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal