static_cast 演算子は、与えられた式を指定された型に変換します。
右不等号括弧の機能により、2 つの連続する > トークンの代わりに >> トークンを使用して、template_id を static_cast 演算子の Type として指定することができます。詳しくは、クラス・テンプレート (C++ のみ)を参照してください。
または関数型に対する右辺値参照である場合
、static_cast<Type>(expression) は左辺値です。
Type がオブジェクト型に対する右辺値参照である場合、static_cast<Type>(expression) は xvalue です。
(prvalue)
右辺値です。static_cast 演算子の例を以下に示します。
#include <iostream>
using namespace std;
int main() {
int j = 41;
int v = 4;
float m = j/v;
float d = static_cast<float>(j)/v;
cout << "m = " << m << endl;
cout << "d = " << d << endl;
}
m = 10
d = 10.25
この例では、m = j/v; は、型 int の答えを作成します。 なぜなら、j と v の両方とも整数であるからです。 逆に、d = static_cast<float>(j)/v; は、型 float の答えを作成します。static_cast 演算子は、 変数 j を、型 float に変換します。 これによって、コンパイラーは、型 float の答えをもつ割り算を生成できます。 すべての static_cast 演算子は、コンパイル時に解決します。 そして、どの const または volatile 修飾子も除去しません。
static_cast 演算子を NULL ポインターに適用すると、ターゲット型の NULL ポインター値に変換されます。
型 A の左辺値または xvalue から型 B&&。
キャスト結果は、型 B の xvalue になります。
(prvalue)
A へのポインターの右辺値から B へのポインター
型 A の左辺値から
型 B&& (型 A の xvalue を
型 B&& の参照に直接バインドできる場合)
(prvalue)
右辺値を、型が cv2 T である B のメンバーへのポインターの
(prvalue)
右辺値にキャストできます。cv2 が cv1 と同等以上の cv 修飾である場合は、cv1 void を指すポインターを、cv2 void を指すポインターに明示的に変換できます。