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");
}


Reply via email to