Also, if this were the /only/ way to cast away constness, it would considerably reduce undefined behavior caused by silly mistakes which could now be caught at compile time. Imagine... const(int)* p; auto q = cast(void *) p; /* Error - p is const */ auto q = cast(void *) cast(!const) p; /* OK */