> struct Foo > { > int a; > static Foo opImplicitConstructFrom(T)(T val) if(is(T : int)) > { > return Foo(val); > } > } void test(Foo foo, int i) { assert(foo.a == i); } test(42, 42); -> test(Foo.opImplicitConstructFrom(42), 42);