Wasn't there some discussion quite some time ago about introducing an implicit/@implicit tag similar to C++'s explicit, just the other way around? I know there's alias this, but what if you don't store the value directly? struct A { int store; this(int a) { store = a << 16; ... } } A a = 5;