gpt4 book ai didi

C++:POD 优缺点

转载 作者:可可西里 更新时间:2023-11-01 15:08:07 26 4
gpt4 key购买 nike

  • 优点和缺点是什么使用 Plain Old Data (POD)structs\classes in C++
  • 在什么情况下应该更喜欢使用他们在非 POD 上?
  • 具体来说,POD 在工作时有优势吗与序列化框架?也许在跨平台工作时和跨语言?

最佳答案

如果您有无数的小对象,确保这些对象是 POD 可能是一个巨大的优势。

  1. 您可以调用其中的大部分调用 oc() 或 malloc(),从而节省对构造函数的大量调用。
  2. 为了持久化,您可以使用 fwrite() 和 fread() 整个 block 来提高速度,而不是一次一个地流出对象。

缺点是,您必须灵活处理代码中的非 OOP POD。 POD 是旧式 C 代码的回退,在旧式 C 代码中您了解并关心数据的布局。当布局定义明确时,您可以通过工作内存块而不是许多小块来优化。

请注意,我上面描述的内容适用于平凡布局的结构。换句话说,如果你在这个类型上调用 type_trait 的 std::is_trivially_copyable(),你会得到 true。 POD 的要求实际上比平凡可复制结构的要求还要强。因此,我上面刚刚描述的内容适用于所有 POD,甚至适用于一些恰好可平凡复制的非 POD。

关于C++:POD 优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4524931/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com