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