Quite simply, use of a typecast (or some other method) to tell a compiler to disregard the ConstQualifier, and allow an object declared const to be mutated. CeePlusPlus even has a special purpose operator for this; const_cast. (You can also use the general purpose CeeLanguage cast operator for this; however this is considered deprecated in C++). Other new-style C++ casts (such as dynamic_cast (DynamicCast) and static_cast) don't let you discard const. (They don't let you discard the VolatileQualifier either; for that you use const_cast as well...) CastingAwayConst has two legitimate uses: Dealing with a legacy interface which is ConstIncorrect, or implementing LogicalConst''''''ness if other means of doing so (such as mutable) are not provided.