You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过字节数组用std::memcpy复制同类型平凡可复制对象是否合规?

平凡可复制对象跨实例字节复制的标准合规性疑问

这是《Bitwise swapping the internal representation of two simple objects, even if they are not of a trivially copyable type》的跟进讨论内容。作者简化原代码,将目标类型设定为平凡可复制类型SimpleClass,通过char数组作为临时存储:先用std::memcpy将s1的字节复制到tmp数组,再将tmp的字节复制到s2。

讨论中多数观点认为这段代码符合C++标准的[basic.types#general-2]和[basic.types#general-3]条款,但存在一个关键问题:[basic.types#general-2]仅明确保证,当把字节复制回原对象时,对象会恢复原值,完全未提及将字节复制到同类型其他对象的场景。

作者从标准的设计意图判断,这种跨实例的字节复制应该被允许,且目前主流编译器都认可该写法,但仍有疑问待解:这是标准措辞的疏漏?还是存在其他未被关注到的适用条款?或是当前这种写法本质上属于未定义行为?

内容的提问来源于stack exchange,提问作者Oersted

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.15 18:32:32