【发布时间】:2017-01-29 22:54:58
【问题描述】:
我遇到了this question 关于枚举的基础类型,其中一个答案引用标准 C++ 7.2/5 为:
枚举的底层类型是一个整数类型,可以表示枚举中定义的所有枚举值。使用哪种整数类型作为枚举的基础类型由实现定义,除非基础类型不得大于 int,除非枚举数的值不能适合 int 或 unsigned int。
这对于所有合理的情况都非常清楚。 但是,如果我将一个枚举设置得如此之大,以至于它甚至无法放入很长的长度,会发生什么?
(我不知道为什么在实践中会发生这种情况,但也许我觉得自己很有破坏性,下午有空)
此行为是否由标准定义?
【问题讨论】:
-
如果您将
enum设为那么大,您的源文件将无法放入磁盘:-) -
我在设想一个真正可怕的头文件,枚举中有超过 2^64 个名称。那不行吗?
-
设计起来非常简单,看我的回答。