Sun Studio 12 Update 1:C++ 用户指南

9.1 const_cast

可以使用表达式 const_cast<T>(v) 更改指针或引用的 constvolatile 限定符。(在新式强制类型转换中,只有 const_cast<> 可以删除 const 限定符。)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();                // remove const
ip = const_cast<int*> (cvip);    // remove const and volatile
}