【发布时间】:2023-03-27 03:05:01
【问题描述】:
据我所知,memcpy 进入未初始化的存储空间 cannot 可以安全地用于创建源对象的副本。
然而,在this thread 去年的 open-std WG21 "ub" 列表中,参与者引用了新的 memcpy 生命周期启动规则:
这似乎没有上升到错误报告的级别,但它可能 与新的 memcpy 生命周期启动规则相关。他们会吗 为源字节和目标字节赋予某种静态类型?
根据问题的上下文和少量类型擦除示例代码,似乎它可能与通过memcpy 在aligned_storage 中创建新对象有关。
尽我所能搜索,我找不到对新规则的引用。我特别好奇它们是否仅适用于替换已创建对象的内容,或者它们是否改变了在未初始化内存中可能创建对象的情况。
【问题讨论】:
标签: c++ language-lawyer c++17 memcpy object-lifetime