Order of evaluation of post-increment operator
Gary Willoughby via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Sun Dec 28 06:51:21 PST 2014
I was just taking a look at the following poll[1] about the order
of evaluation when using the post-increment operator. The
following D snippet shows an example.
import std.stdio;
void main(string[] args)
{
auto foo = [0, 0];
int i = 0;
foo[i++] = i++; // Woah!
writefln("%s", foo);
}
Apparently the C++ equivalent is undefined behaviour but when run
using D the following result is output:
[1, 0]
1. Can someone please explain this output?
2. Is there anywhere this order of evaluation is documented?
3. Do you agree this is right?
[1]:
http://herbsutter.com/2014/12/01/a-quick-poll-about-order-of-evaluation/
More information about the Digitalmars-d-learn
mailing list