Безопасно ли копировать байты объекта в массив unsigned char
, а затем обратно, используя memcpy
, и оставляет ли объект неизменным?
То есть следующее безопасно для любого t
:
template <typename T>
void copy_back_and_forth(T& t) {
unsigned char buf[sizeof(T)];
std::memcpy(buf, &t, sizeof(T));
std::memcpy(&t, buf, sizeof(T));
}
... и оставляет ли оно t
без изменений?