When replace typedef to enum, it became impossible to compile a certain portion.
dmd v2.057 Windows -------------------------------------------- enum HANDLE : void* {init = (void*).init} pure HANDLE int_to_HANDLE(int x) { return cast(HANDLE)x; } void bar() { HANDLE a = cast(HANDLE)1;// ok HANDLE b = int_to_HANDLE(2);// ok } HANDLE c = cast(HANDLE)3;// ok HANDLE d = int_to_HANDLE(4);// NG -------------------------------------------- foo.d(17): Error: cannot implicitly convert expression (cast(void*)4u) of type void* to HANDLE