当前位置: 首页 > 知识库问答 >
问题:

枚举类型的布局是否与其基础类型兼容?

毋宸
2023-03-14

但是,我找不到任何说明枚举类型与其基础类型的布局兼容的内容。对我来说,这似乎是显而易见的,因为“底层类型”的含义有合理的语义,但它实际上是由标准保证的吗?

共有1个答案

江曦
2023-03-14

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

7[...]基础类型是一个整数类型,可以表示枚举中定义的所有枚举数值。如果没有整数类型可以表示所有枚举数值,则枚举格式不正确。[...]

此外,4.5积分促销[conv.prom]说

 类似资料:
  • 枚举是为了让程序可读性更好,比如用来描述用户的角色,普通的会员、付费的会员等,同时也限定了用户角色的种类,保证安全性,不会出现上帝角色这种乱入的东西。 枚举的类别与写法 默认值从0开始,依次递增,这个你应该还记得。 普通的枚举 let str = 'something' enum test{ test01, } enum FileAccess { None, Read

  • 问题内容: 为什么在定义枚举时将其传递给字段名称列表,然后为什么这些字段名称(例如Days.MONDAY)最终引用字段 值 呢?我可以传递一个字段(例如Days.MONDAY),然后使用开关获取该字段的值。更奇怪的是,当我声明枚举字段时,即使它们实际上是值,我什至不必用引号将它们引起来。 问题答案: 将Java枚举视为定义类的一种不错的语法。这是一个可能有帮助的shell脚本: 是的,您可以说是c

  • 枚举类型(也可以称为“枚举器”)由一组具有独立标识符(名称)的整数类型常量构成,在 C# 中枚举类型不仅可以在类或结构体的内部声明,也可以在类或结构体的外部声明,默认情况下枚举类型中成员的默认值是从 0 开始的,然后逐一递增。 在 C# 中可以使用 enum 关键字来声明枚举类型,语法格式如下所示: enum enum_name{     enumeration list; } 其中,enum_n

  • 上一章我们谈到了从真实世界的值(如扑克牌中的大小和花色)到程序世界内部表示(如整数或字符串)的映射。虽然我们实现了牌面大小和整型数、花色和整型数之间的映射,但必须指出,映射本身并没有成为程序的一部分。 实际上,C++提供了一种称为“枚举类型”的特性使以下两点成为可能,一是将映射作为程序的一部分,一是定义了组成映射的值的集合。比如,牌的花色(Suit)和大小(Rank)可以以枚举的形式定义: enu

  • 创建枚举 import enum class BugStatus(enum.Enum): new = 7 incomplete = 6 invalid = 5 wont_fix = 4 in_progress = 3 fix_committed = 2 fix_released = 1 print('\nMember name: {}'.

  • 问题内容: 例如,我该怎么做: 结果示例: 问题答案: 迅捷4.2+ 从Swift 4.2(使用Xcode 10)开始,只需添加协议一致性即可从中受益。要添加此协议一致性,您只需要在某处写: 如果枚举是您自己的,则可以直接在声明中指定一致性: 然后,以下代码将打印所有可能的值: 与早期Swift版本(3.x和4.x)的兼容性 如果您需要支持Swift 3.x或4.0,则可以通过添加以下代码来模仿S