赋值运算符 - 每个成员还是二进制副本?

0 c++ copy binary-data variable-assignment

我想知道,只要所有包含的赋值都没有副作用,除了将二进制值传递给地址,将源对象指针中的字节复制到目标而不是将每个目标成员分配给每个目标成员都不是更有效来源会员?

作为一个子问题...我想知道读取模式如何影响内存控制器负载.显然,当MC从正确对齐的地址读取其全宽时,它是最有效的.也许将所有成员合并为一系列最大宽数据类型以进行对齐会更有效,例如,如果MC为64位且成员数据集为10个字节,则复制64位和16位值,即使成员说10 char秒,所以复制这种方式会使MC比一次复制每个成员字符更好.

Ded*_*tor 6

只要只需要字节复制,只需让编译器为您生成默认值.如果最有效的话,
它也会自动优化它memcpy.

作为一个额外的好处,如果你添加一个具有更复杂(自包含)语义的成员,编译器仍然会做正确的事情.

如果添加一个不在语义上复制其数据的成员,您只需自己进行操作即可.