On 2010-07-25 23:30, Philippe Sigaud wrote:


On Sun, Jul 25, 2010 at 16:08, div0 <[email protected]
<mailto:[email protected]>> wrote:

    On 25/07/2010 13:55, Philippe Sigaud wrote:

        OK, I must be tired, I don't know.


    Nope you're not tired.
    Templated constructor functions are not currently supported in D. :(


Ouch.

I did that many many times, but for structs. Case in point, I
encountered this while deciding to switch from struct to classes,
thinking inheritance would suppress lot of code duplication.  Aw, man,
first time in months I use classes in D, and it's killed in the womb.
OK, there are solutions for for what I envision, but that will be more
painful.

Thanks, div0

Perhaps a factory function like opCall or something similar ?

class Foo
{
    int x;

    static Foo opCall (T) (T y)
    {
        Foo foo = new Foo;
        foo.x = y;
        return foo;
    }
}

auto foo = Foo(3);

--
/Jacob Carlborg

Reply via email to