gpt4 book ai didi

c++ - 枚举类型布局是否与其基础类型兼容?

转载 作者:行者123 更新时间:2023-12-04 00:01:47 24 4
gpt4 key购买 nike

我正在浏览 n3690 ,即将发布的草稿C++14标准,我在 7.2 部分看到段9 :

Two enumeration types are layout-compatible if they have the same underlying type.



但是,我找不到任何说明枚举类型与其基础类型布局兼容的内容。对我来说,考虑到“基础类型”的含义的合理语义,这应该遵循这一点似乎很明显,但标准是否真的保证了这一点?

最佳答案

不,标准中没有黑字引用来说明这一点。最接近的是同一段落的第 7 点

7 [...] the underlying type is an integral type that can represent all the enumerator values defined in the enumeration. If no integral type can represent all the enumerator values, the enumeration is ill-formed. [...]



此外,4.5 Integral Promotions [conv.prom] 说

4 A prvalue of an unscoped enumeration type whose underlying type is fixed (7.2) can be converted to a prvalue of its underlying type.



正如评论中指出的那样,可能有(狡猾的 IMO)实现在枚举及其基础类型之间具有不同的字节序。这将是一个实现质量问题。出于所有实际目的,应该期望布局兼容性。

关于c++ - 枚举类型布局是否与其基础类型兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21956017/

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