据我所知,memcpy
成为未初始化存储cannot安全地用于创建源对象的副本。对新标准中的memcpy生命周期初始化规则有什么变化?
然而,在this thread从开放-STD WG21“UB”名单上的最后一年,一个参与者是指新的memcpy寿命萌生规则:
这似乎并没有上升到错误报告的级别,但它可能与新的memcpy生存期启动规则相关。他们将 赋予源和目标字节一些静态类型?
基于该问题和类型擦除示例代码量小的情况下,似乎它可能与经由memcpy
创建在aligned_storage
新对象。
搜索尽我所能,我无法找到新规则的参考。我特别好奇它们是否适用于替换已经创建的对象的内容,或者它们是否改变了未初始化内存中潜在创建对象的情况。
“_据我所知,未初始化存储中的memcpy不能安全地用于创建源对象的副本。”是的,但只有在杜鹃花严肃对待std的土地上。如果你知道委员会中的大多数人几乎不知道他们在做什么... – curiousguy