C++ ドラフト標準 N3337セクション5.2.10節Reinterpret cast
7 (強調鉱山):
オブジェクト ポインターは、別の型へのオブジェクト ポインターに明示的に変換できます。「T1 へのポインター」型の prvalue v が「cv T2 へのポインター」型に変換されるとき、結果は、
static_cast<cv T2*>(static_cast<cv void*>(v))
T1 と T2 の両方が標準レイアウト型 (3.9) であり、T2 のアライメント要件がそれらより厳密でない場合です。 T1 の、またはいずれかの型が void の場合。
これは、式v
が prvalue であることを意味しますか? もしそうなら、
int a = 0x1234;
int *pa = &a;
char *pc = reinterpret_cast<char *>(pa);
上記の変数pa
は ですので、 の変数が正しい式にある場合、その変数はの 型lvalue
であると考えることができますか?.lvalue
prvalue