Предположим, у меня есть действительный указатель p0
:
T a[10];
T* p0 = &a[0];
Я знаю, что я могу безопасно выполнить круговой переход следующим образом:
reinterpret_cast<T*>(reinterpret_cast<uintptr_t>(p0)) == p0;
Но безопасно ли делать следующее?
T* p1 = reinterpret_cast<T*>(reinterpret_cast<uintptr_t>(p0) + sizeof(T));
т.е. могу ли я быть уверен, что нет УБ и что p1 == &a[1]
?
n
приводит к тому, что он указывает наn*wordsize
байта дальше. - person user2357112 supports Monica   schedule 21.05.2015