Post increment and decrement

Andrei Alexandrescu via Digitalmars-d digitalmars-d at puremagic.com
Wed Mar 11 17:50:28 PDT 2015


On 3/11/15 10:23 AM, welkam wrote:
> Observation Nr. 1
> People prefer to write var++ instead of ++var.
>
> Observation Nr. 2
> Because of observation Nr. 1 and other reasons compilers became good at
> removing code that is not needed making var++ and ++var to produce the
> same code if returned value is not used.
>
> Observation Nr. 3
> Because of observation Nr. 2 more people use var++ in place where they
> really only need ++var.
>
> Observation Nr. 4
> Because of observation Nr. 3 people learning to program may mistakenly
> learn that var++ is just incrementing. (I am included in that list)
>
> Observation Nr. 5
> Because of observation Nr. 4 people can write slower than necessary code
> for classes with overloaded operator or even get bugs.
>
> Because of all this why not make only one increment/decrement operator
> and have post increment/decrement to be called by template name, because
> it is a template?
>
> template post_inc(T) {
> auto tmp = T;
> T++;
> return tmp;
> }

Observation Nr. 6
Somebody didn't Read The Fine Manual. Page 369:

=========
If the result of a++ is not needed, the rewrite is ++a, which is 
subsequently rewritten to a.opUnary!"++"().
=========


Andrei



More information about the Digitalmars-d mailing list