Это неопределенное поведение const_cast?

Мне было интересно, является ли следующее поведение undefined

// Case 1:
int *p = 0;
int const *q = *const_cast<int const* const*>(&p);

// Case 2: (I think this is the same)
int *p = 0;
int const *const *pp = &p;
int const *q = *pp;

Это undefined при чтении int * , как если бы это было int const * ? Я думаю, что это неопределенное поведение, но раньше я думал, что только добавление const в целом безопасно, поэтому я не уверен.

8
задан Johannes Schaub - litb 11 May 2011 в 19:57
поделиться