C++ 使用宏生成枚举类成员

C++ 使用宏生成枚举类成员,c++,C++,我想创建一个包含255个元素的枚举,如下所示: enum class MyEnum { Item0, Item1, //.... Item254, Item255 }; 有没有办法使用宏来生成枚举的成员,而不是实际列出所有成员?您可以使用shell脚本来生成它们……我认为它们不会经常更改 echo Item{0..255}, 您可以使用shell脚本生成它们……我认为它们不会经常更改 echo Item{0..255}, 好吧,看来这次行动的

我想创建一个包含255个元素的枚举,如下所示:

enum class MyEnum
{
    Item0,
    Item1,

    //....

    Item254,
    Item255
};

有没有办法使用宏来生成枚举的成员,而不是实际列出所有成员?

您可以使用shell脚本来生成它们……我认为它们不会经常更改

echo Item{0..255}, 

您可以使用shell脚本生成它们……我认为它们不会经常更改

echo Item{0..255}, 

好吧,看来这次行动的目的是什么。我不会说这是最好的解决方案,但它确实适用于具有以下值的枚举:

enum class MyEnum {
    BOOST_PP_ENUM_PARAMS(256, Item)
};

好吧,看来这次行动的目的是什么。我不会说这是最好的解决方案,但它确实适用于具有以下值的枚举:

enum class MyEnum {
    BOOST_PP_ENUM_PARAMS(256, Item)
};

TMP可能是一个更好的选择。非常肯定的Poost PP序列可以做到这一点。这个EnUM服务的目的是什么?为什么当文字表示相同的事情时,为什么使用EnUM(例如,考虑有人定义了代码< Ontho1000?/Cord> >的代码,希望它成为有用的常量,其值改变为<代码> 2000 < /代码>)。将它放在另一个文件中,然后将该文件包含在
定义中。@albundy即使基于宏的解决方案是可能的(我强烈怀疑,因为宏不提供可行的编译时编程环境),它也会非常丑陋。与这样的解决方案相比,您所说的任何“混乱”看起来都是地球上最干净的地方。TMP可能是一个更好的选择非常肯定Boost PP序列可以做到这一点。此枚举的用途是什么?当字面意思相同时,为什么要对这样的事情使用枚举(例如,考虑有人定义代码<代码> No.1000或代码>希望成为有用的常量,其值更改为<代码> 2000代码>代码>。将其放置在不同的文件中,然后将该文件包含在<代码>类< /代码>定义中。@ Albuny,即使是基于宏的解决方案也是可能的。(我强烈怀疑这一点,因为宏没有提供一个可行的编译时编程环境),这将是非常丑陋的。与这样的解决方案相比,你所说的任何“混乱”看起来都是地球上最干净的地方。