C++ 枚举类比较(默认值除外)

C++ 枚举类比较(默认值除外),c++,class,enums,C++,Class,Enums,我有以下枚举类: enum class MyEnum : int32_t { ENUM1 = EXTERNAL_CONSTANT1, ENUM2 = EXTERNAL_CONSTANT2, ENUM3 = EXTERNAL_CONSTANT3 }; “外部_CONSTANTX”是从其他地方提供的常量(或多或少是特殊代码) 我想做的是有一个选项来比较枚举的优先级,这是在另一个文档中指定的,例如ENUM3的优先级最高,ENUM2的优先级最低(它与外部_常量的值完全不相关)。

我有以下枚举类:

enum class MyEnum : int32_t
{
    ENUM1 = EXTERNAL_CONSTANT1,
    ENUM2 = EXTERNAL_CONSTANT2,
    ENUM3 = EXTERNAL_CONSTANT3
};
“外部_CONSTANTX”是从其他地方提供的常量(或多或少是特殊代码)

我想做的是有一个选项来比较枚举的优先级,这是在另一个文档中指定的,例如ENUM3的优先级最高,ENUM2的优先级最低(它与外部_常量的值完全不相关)。在我检查时,C++不允许获取特定枚举的索引,因此我可以按照它们的优先级应用它们的顺序。我的方法是使用枚举向量,其中所有枚举都具有特定的优先级顺序,但我认为这不是最好的可扩展方法


有没有更好的方法来解决我描述的问题?提前感谢

你能添加你的
向量
示例代码吗(以及你如何使用它们)?只是一个想法。使用
map
将枚举映射到它们的优先级如何?问题中的所有内容都是准确的,您必须以笨拙的方式来完成。您不再需要将enum成员大写以使其不同,这就是:)如何提供外部常量?如果是文本文件中的列表,您可以轻松创建自己的预编译器,让它们生成
.cpp
.h
文件,并填充所有内容。两个想法:只需将优先级编码到枚举本身中:
ENUM1=ENUM1\u PRIO