【发布时间】:2016-08-10 08:36:55
【问题描述】:
假设我有一个类 T 和一个数组:
uint8_t array[sizeof(T)];
需要注意的一点是array 的对齐方式可能与T 不兼容。
现在的问题是:有没有办法将T 存储在数组中(尽管存在对齐问题),前提是我们不尝试对T 做任何事情,直到我们从数组中复制它到正确对齐的存储空间?
换句话说,array 只是一个存储位置,直到我们需要访问T,在这种情况下,我们将其复制到正确对齐,并使用该值,然后将其复制回存储中。
注意:
T 可以很容易复制,但不能保证T 可以很容易复制......它可以是你能想到的任何类
所以.....这是否有可能(希望符合标准?)
【问题讨论】:
-
memcpy,如果T是微不足道的? -
你需要的是序列化。那里有很多答案。