Как цепочка static_cast четко определена? - PullRequest
0 голосов
/ 11 декабря 2011

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

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

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

1 Ответ

2 голосов
/ 11 декабря 2011

Это приведение не четко определено.

...