式 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 を使用できますが、変換は検証されず、結果は使用できない場合があります。