【发布时间】:2020-11-08 21:23:18
【问题描述】:
我想更多地了解这些类型。
而不是列出一个类型的要求是平凡的,标准布局等。我还想知道平凡,标准布局等意味着什么。根据我的理解(这可能是绝对错误的) ,如下:
可轻松复制——可以使用 std::memcpy 安全地复制。如果你将数据 memcpy 回一个对象,它将与原始对象相同。
Trivial – 可平凡复制,并具有一个或多个默认构造函数,所有这些构造函数要么是平凡的,要么是已删除的,并且至少有一个没有被删除(必须是平凡的)。这意味着它可以简单地复制,并且如果我们进行默认初始化(在编译时初始化,因为编译器知道默认构造函数是如何工作的)则静态初始化
标准布局 - 布局(内存中表示的数据成员的顺序、对齐方式和占用的内存/填充大小)与 C 中的相同
POD – 简单而标准的布局。此类型与 C 完全兼容。
请纠正我的任何误解,并在可能的情况下提供参考。
另外,我们什么时候想要创建平凡、可复制、标准布局、POD 的对象?示例将不胜感激。
【问题讨论】: