C++ 像模板一样构造枚举

C++ 像模板一样构造枚举,c++,templates,enums,constexpr,C++,Templates,Enums,Constexpr,是否有一种方法可以从另一个输入源(它是constexpr)构造枚举的元素,例如编译时已知的std::array,如下所示: std::array<std::string_view, 3> strs{"AA","BB","CC"}; constexpr int convert(const std::string_view& str) { .... }; enum class MyEnum { AA = c

是否有一种方法可以从另一个输入源(它是constexpr)构造枚举的元素,例如编译时已知的
std::array
,如下所示:

std::array<std::string_view, 3> strs{"AA","BB","CC"};

constexpr int convert(const std::string_view& str) { .... };

enum class MyEnum { 
    AA = convert(strs[0]),  // <== how to generate this 3 lines automatically
    BB = convert(strs[1]), 
    CC = convert(strs[2])
};
std::数组strs{“AA”、“BB”、“CC”};
constexpr int convert(const std::string_view&str){..};
枚举类MyEnum{

AA=转换(strs[0])//对不起,刚刚更新的代码我想做的是使用字符串作为符号名并转换为枚举值。主要问题是C++语法不允许任何其他文字值作为枚举值。它可以构造宏来做你想要的,但是宏必须扩展到整数。r字面值,其他什么都没有。