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

静的キャスト

static_cast<T>(v) は式の値 v を型 T の値に変換します。この式は、暗黙的に実行されるすべての型変換に使用できます。さらに、いかなる値でも void にキャストすることができ、いかなる暗黙的型変換でも、そのキャストが旧式のキャストと同様に正当である限り、反転させることができます。


class B            { ... };
class C : public B { ... };
enum E { first=1, second=2, third=3 };
void use_of_static_cast(C* c1 )
    {
      B* bp = c1;                  // 暗黙的な変換
      C* c2 = static_cast<C*>(bp); // 暗黙的な変換を反転させる
      int i = second;              // 暗黙的な変換
      E e = static_cast<E>(i);     // 暗黙的な変換を反転させる
    }

static_cast 演算子を使用して、const const 以外の型にするようなキャストを行うことはできません。階層の下位に (基底から派生ポインタまたは参照へ) キャストするには static_cast を使用できますが、変換は検証されず、結果は使用できない場合があります。