On Thursday, 27 March 2014 at 17:42:24 UTC, Luís Marques wrote:
Could this be made to work?

    struct S(T)
    {
        T x;

        this(T x)
        {
            this.x = x;
        }
    }

    void main()
    {
        int x = 42;
        auto s = S(x); // fails to deduce T
    }

struct S(T)
{
    static if (is(T == int))
    {
        this(double x) { }
    }
    static if (is(T == double))
    {
        this(int x) { }
    }
}

auto s = S(42); // should it deduce T, huh, and to what?

I believe it could work but too many complexities arise that need to be figured out, especially with overloading in mind so it is hardly worth the effort.

Reply via email to