On Thursday, 27 March 2014 at 17:59:36 UTC, Dicebot wrote:
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?
No, it shouldn't. You're not using T as the parameter type. Just
like T can't be deduced here:
void f(T)(double x) if(is(T == int)) {}
void f(T)(int x) if(is(T == double)) {}
f(42);
