On Saturday, 20 June 2015 at 22:44:17 UTC, Ali Çehreli wrote:
On 06/20/2015 02:09 PM, Xiaoxi wrote:
The output:
before
deneme.S.this
after
deneme.S.~this
Ali
Dear Ali,
thank you for helping! Problem happens when passing by value as
in param.
DMD32 D Compiler v2.067.0
deneme.S.this
before
deneme.S.__postblit
deneme.S.__postblit
deneme.S.~this
deneme.S.~this
after
deneme.S.~this
import std.stdio;
struct S
{
int val;
this(int par)
{
val = par;
writeln(__FUNCTION__);
}
this(this)
{
writeln(__FUNCTION__);
}
~this()
{
writeln(__FUNCTION__);
}
}
S foo(S s)
{
s.val+=1;
return s;
}
void main()
{
auto s = S(42);
writeln("before");
foo(s);
writeln("after");
}