我想知道在包含数组和方法的结构上使用memcpy是否安全(只是一些getter和setter,因为数组的索引是不寻常的,我必须以某种方式映射它)。我知道它对POD是安全的,我不确定我的结构是否会被视为POD?
答案 0 :(得分:10)
如果memcpy
为TriviallyCopyable,则可以使用struct
。
您可以使用std::is_trivially_copyable
检查struct
是否可以轻松复制。
此外,正如@JohanLundberg在评论中指出的那样,目标地址必须为0
模std::alignment_of<T>
。您可以在http://en.cppreference.com/w/cpp/language/object#Alignment了解有关对象对齐要求的更多信息。