为什么 std::is_pod 在 C++20 中被弃用?

问题描述 投票:0回答:1

std::is_pod
已在 C++20 中弃用。
这样选择的原因是什么?我应该使用什么来代替
std::is_pod
来了解类型是否实际上是 POD?

c++ typetraits standard-layout trivially-copyable
1个回答
96
投票

POD 正在被两个类别所取代,这两个类别提供了更多细微差别。 2017 年 11 月的 c++ 标准会议对此有这样的说法:

弃用“普通旧数据”(POD)的概念。它已被两个更细致的类型类别所取代:“琐碎”和“标准布局”。 “POD”相当于“琐碎且标准布局”,但对于许多代码模式来说,更窄的限制为“琐碎”或“标准布局”是合适的;为了鼓励这种精确性,“POD”的概念因此被废弃。库特征 is_pod 也已相应地被弃用。

对于简单数据类型,请使用

is_standard_layout
函数,对于简单数据类型(例如简单结构),请使用
is_trivial
函数。

© www.soinside.com 2019 - 2024. All rights reserved.