gpt4 book ai didi

c++ - 如果枚举不能放入整数类型会发生什么?

转载 作者:IT老高 更新时间:2023-10-28 23:18:40 25 4
gpt4 key购买 nike

我遇到了this question关于枚举的基础类型,其中一个答案引用标准 C++ 7.2/5 为:

The underlying type of an enumeration is an integral type that can represent all the enumerator values defined in the enumeration. It is implementation-defined which integral type is used as the underlying type for an enumeration except that the underlying type shall not be larger than int unless the value of an enu- merator cannot fit in an int or unsigned int.

这对于所有合理的情况都非常清楚。 但是,如果我将一个枚举设置得如此之大,以至于它甚至无法放入很长的长度,会发生什么?

(我不知道为什么在实践中会发生这种情况,但也许我觉得自己很有破坏性,下午有空)

此行为是否由标准定义?

最佳答案

的行为

enum foo : int
{
bar = INT_MAX,
oops
};

和类似的是未定义

我在这里通过将类型强制为 int 有点作弊,但同样适用于您平台上可用的最大整数类型。

关于c++ - 如果枚举不能放入整数类型会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39620802/

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