Мне было интересно, является ли следующее поведение 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
в целом безопасно, поэтому я не уверен.