C++で列挙型の最大および最小定義値を見つける方法はありますか?
いいえ、C++の列挙型の定義済みの最大値と最小値を見つける方法はありません。この種の情報が必要な場合、多くの場合、最後と最初の値を定義することをお勧めします。例えば、
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に次のような最大値と最小値を含めます。
enum {
eAaa = 1,
eBbb,
eCccc,
eMin = eAaaa,
eMax = eCccc
}
これがどのように役立つかの例については、このWebページを参照してください。 Stupid Enum Tricks
enum My_enum
{
FIRST_VALUE = 0,
MY_VALUE1,
MY_VALUE2,
...
MY_VALUEN,
LAST_VALUE
};
定義後、My_enum :: LAST_VALUE == N + 1