Hello,

the code below compiles and runs fine. However, when I change Payload from struct to class I get compiler errors:

Error 1 Error: template instance std.typecons.RefCounted!(Payload, cast(RefCountedAutoInitialize)1) does not match template declaration RefCounted(T, RefCountedAutoInitialize autoInit = RefCountedAutoInitialize.yes) if (!is(T == class)) C:\Users\Nutzer\Windows Ordner\Documents\Visual Studio 2013\Projects\RefCountedScratch\RefCountedScratch\main.d 26

I tried many things, but nothing did it. Any help appreciated :-).
Thanks, Bienlein


import std.stdio;
import std.typecons;

struct Payload
{
        private int num = 0;

        this(int i)
        {
                num = i;
                writefln("Payload's constructor called");
        }

        ~this()
        {
                 writefln("Payload's destructor called");
        }
}



int main(string[] argv)
{
    alias RefCounted!(Payload, RefCountedAutoInitialize.yes) Data;

    int bar = 12;
    Data data = Data(bar);

    return 0;
}

Reply via email to