const_cast&lt;&gt; isn&#x27;t the root of the problem. If someone passes you a pointer to a const pointer to a non-const thing, they can still just mutate the non-const thing without any casts. You&#x27;d have to forbid non-const to const pointer conversions entirely (which would imply removing const_cast&lt;&gt;, as there would no longer be any situations in which it was legal to use).