有没有办法在c ++中找到枚举的最大和最小定义值?
不,没有办法在C++中找到任何枚举的最大和最小定义值.当需要这种信息时,定义Last和First值通常是一种好习惯.例如,
enum MyPretendEnum { Apples, Oranges, Pears, Bananas, First = Apples, Last = Bananas };
不需要为First
和之间的每个值命名值Last
.
不,不是标准的C++.你可以手动完成:
enum Name { val0, val1, val2, num_values };
num_values
将包含枚举中的值的数量.
不可以.C或C++中的枚举只是一个常量列表.没有更高的结构可以保存这些信息.
通常当我需要这种信息时,我在枚举中包含这样的最大值和最小值:
enum { eAaa = 1, eBbb, eCccc, eMin = eAaaa, eMax = eCccc }
有关如何使用它的一些示例,请参阅此网页:Stupid Enum Tricks