文法:
型 const_cast<型> (オブジェクト);
const_castは、オブジェクトのconst属性や、volatile属性を削除にしようするキーワードです。対象となるデータ型は、(当然)const修飾子だけを持っていないということを除けば、入力元の型と同じでなければなりません。型はポインタ型や参照型でなければなりません。
例えば、以下のコードはconst_castを使用して、オブジェクトのconst修飾子を削除します。
class Foo { public: void func() {} // constではないメンバー関数 }; void someFunction( const Foo& f ) { f.func(); // コンパイルエラー: const参照から非const関数は呼べません Foo &fRef = const_cast<Foo&>(f); fRef.func(); // OK }
関連トピック: const, dynamic_cast, reinterpret_cast, static_cast, casting_comparison