xxxxxxxxxx
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));
}
/*
The correct answer is maybe "10", but also "-10".
Why is that?
There is no guarantee that a is executed before b.
This is of course a common behavior from even C++ as the following would give the same result:
```
std::cout << a() << b();
```
*/