引用を理解できません(具体的には、太字部分):
タイプ「cv1 void へのポインタ」の prvalue は、タイプ「cv2 T へのポインタ」の prvalue に変換できます。ここで、T はオブジェクト タイプであり、cv2 は cv1 と同じ cv-qualification またはそれより大きい cv-qualification です。元のポインタ値がメモリ内のバイトのアドレス A を表し、A が T のアラインメント要件を満たさない場合、結果のポインタ値は指定されません。
int i = 0;
void *vp = &i;
auto *res = static_cast<double*>(vp);
私の質問は次のとおりです。
res
( のアドレス) が指すアドレスはint
、 のアラインメント要件を満たしていますdouble
か?結果のポインタ
res
には未指定の値がありますか?そして、私がこのようなものを持っているとき:タイプはターゲットタイプより厳密ではありません
static_cast<double*>(static_cast<void *>(&i))
か? この式の結果が不特定にならないようにi
double