C++ 使用宏生成枚举类成员
我想创建一个包含255个元素的枚举,如下所示:C++ 使用宏生成枚举类成员,c++,C++,我想创建一个包含255个元素的枚举,如下所示: enum class MyEnum { Item0, Item1, //.... Item254, Item255 }; 有没有办法使用宏来生成枚举的成员,而不是实际列出所有成员?您可以使用shell脚本来生成它们……我认为它们不会经常更改 echo Item{0..255}, 您可以使用shell脚本生成它们……我认为它们不会经常更改 echo Item{0..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,即使是基于宏的解决方案也是可能的。(我强烈怀疑这一点,因为宏没有提供一个可行的编译时编程环境),这将是非常丑陋的。与这样的解决方案相比,你所说的任何“混乱”看起来都是地球上最干净的地方。