Fun surprising things

Patrick Schluter Patrick.Schluter at bbox.fr
Wed Oct 31 14:54:48 UTC 2018


On Wednesday, 31 October 2018 at 14:00:14 UTC, bauss wrote:
> What's the output of this program? (Try to figure it out 
> without running it.)
>
> ```
> int c = 0;
>
> int a()
> {
>     return c++;
> }
>
> int b()
> {
>     return c--;
> }
>
> void main()
> {
>     import std.conv : to;
>     import std.stdio : writeln;
>
>     writeln(to!string(a) ~ to!string(b));
> }
> ```
>
> If your answer is "10" then you're wrong.
>
> You can get the result and answer here: 
> https://run.dlang.io/is/idZurR

01 is the other possible result. It all depends in what order a 
and b are called. ~ is not a sequence point (does D even have 
that typical C notion of sequence points?) so the order of 
evaluation is at the discretion of the compiler.

therefore -10 or 01 are both right.


More information about the Digitalmars-d mailing list