On Sunday, 28 December 2014 at 14:51:22 UTC, Gary Willoughby wrote:
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/

Related thread: http://forum.dlang.org/thread/amngdygrlsogzmefz...@forum.dlang.org#post-l92grb:242q5v:241:40digitalmars.com

Reply via email to