C++ プログラミングガイド

const キャスト

式 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 を削除
}