On Sunday, 27 April 2014 at 00:48:53 UTC, Ali Çehreli wrote:

I think the following is a start:

import std.variant;

class MyClass
{
    Variant[string] store;

    void attach(T)(string key, ref T var)
    {
        store[key] = &var;
    }

    void set(T)(string key, T value)
    {
        *store[key].get!(T*) = value;
    }

    T get(T)(string key)
    {
        return *store[key].get!(T*)();
    }
}

void main()
{
    int sample = 42;

    auto myObj = new MyClass;
    myObj.attach("othername", sample);
    myObj.set("othername", 69);

    assert(myObj.get!int("othername") == 69);
    assert(sample == 69);
}

Ali


Much obliged. Just working on preventing type errors, now. I'll let you know how it goes

Reply via email to