式 const_cast<T>(v) を使用して、ポインタまたは参照の const 修飾子または volatile 修飾子を変更することができます(新しい形式のキャストの内、const 修飾子を削除できるのは const_cast<> のみ)。T はポインタ、参照、またはメンバー型へのポインタでなければなりません。
class A { public: virtual void f(); int i; }; extern const int A::* cimp; extern const volatile int* cvip; extern int* ip; void use_of_const_cast( ) { const A a1; const_cast<A&>(a1).f( ); // const を削除 al.*(const_cast<int A::*> cimp) = 1; // const を削除 ip = const_cast<int*> cvip; // const と volatile を削除 }