On Friday, 29 March 2013 at 07:52:13 UTC, deadalnix wrote:
That sound unimplementable, sorry.

Although, I give you that it's probably very difficult to implement. The compiler should know all kinds of math and logic:

void fun(T)(T) if (1.5 ^^ T.sizeof >= 194 && T.sizeof != 42) { }
void fun(T)(T) if (T.sizeof ^^ 2 >= 194) { }

void main(string[] args)
{
    byte[14] arr;
    fun(arr); // ambiguity error
}

...if we then add a third overload:

void fun(T)(T) if (1.5 ^^ T.sizeof >= 194) { }

...the call to fun(arr) would evaluate to that one.

Reply via email to