Как цепочка static_cast четко определена?

(5.2.9/10) Значение r типа "указатель на cv1 void" может быть преобразовано в значение типа "указатель на cv2 T", где T - тип объекта, а cv2 - та же квалификация cv, что и более cv-квалификация, чем, cv1. Значение указателя типа на объект, преобразованное в "указатель на cv void" и обратно в исходный тип указателя, будет иметь свое первоначальное значение.

Так как, результат кастинга из void* должен быть int* (оригинальный тип указателя) Итак, что делает следующий приведенный код действительным?

int i = 10;
double *pd_2 = static_cast<double*>(static_cast<void*>(&i));

1 ответ

Этот состав не является четко определенным.

Другие вопросы по тегам