在C++中,是否可以枚举枚举(运行时或编译时(首选))并为每次迭代调用函数/生成代码?
示例用例:
enum abc
{
start
a,
b,
c,
end
}
for each (__enum__member__ in abc)
{
function_call(__enum__member__);
}
Run Code Online (Sandbox Code Playgroud)
合理的重复:
我在很多地方使用C++随机数实用程序库.它可能不是很舒服(例如,没有任意分布的基类),但是 - 我已经学会了忍受它.
现在我碰巧需要从枚举类型中统一采样值.我知道,关于SO的问题已经存在:
然而,那一个:
假设所有枚举值都是连续的,即它不起作用
enum Color { Red = 1, Green = 2, Blue = 4 }
Run Code Online (Sandbox Code Playgroud)
我们希望以1/3的概率对这三个值中的每一个进行采样.
std::uniform_distribution<>,即它不能与您传递它的随机引擎一起使用等等.显然我不能使用std::uniform_int_distribution<Color>,如果只是因为上面的原因1.我该怎么做呢?
笔记: