我在用C++写一个简单的朴素贝叶斯图像分类器。我想通过两种enum class类型对其进行参数化(一种用于输入像素的类型,一种用于图像的类)。问题是规范的一部分要求我能够将分类器写入文件,因此我需要能够获取所涉及的枚举类中所有元素的整数值。当然,这需要我从有问题的枚举类中获取所有值。

在Java中,我可以写

EnumSet.allOf(PixelTypeEnum.class)

得到一个包含枚举类的每个元素的集合。 C++中有类似的习语吗?

最佳答案

不,没有。那是因为C++没有反射。

您可以采用一些方法来模仿EnumSet(例如,我一直在使用的this FlagSet implementation,并向其中添加了琐碎的setAll函数),但是没有内置方法。

关于c++ - Java的EnumSet.allOf()的C++等效项是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55210041/

10-15 00:21