Что является эквивалентом C ++ Java EnumSet.allOf ()? - PullRequest
2 голосов
/ 17 марта 2019

Я пишу простой наивный байесовский классификатор изображений на C ++. Я хотел бы параметризовать его двумя enum class типами (один для типа входных пикселей, один для класса изображения). Проблема в том, что часть спецификации требует, чтобы я был в состоянии записать классификатор в файл, поэтому мне нужно иметь возможность получать целочисленные значения всех элементов в рассматриваемых классах перечисления. Это, конечно, требует, чтобы я получил все значения из рассматриваемых классов enum.

На Java я могу написать

EnumSet.allOf(PixelTypeEnum.class)

чтобы получить набор, содержащий каждый элемент класса enum. Есть ли подобная идиома в C ++?

1 Ответ

1 голос
/ 17 марта 2019

Нет, нет.Это потому, что в C ++ нет отражения.

Есть несколько подходов, которые вы можете использовать, чтобы имитировать EnumSet (например, это FlagSet реализация , которую я использовал и к которой я отношусь.действительно добавил тривиальную setAll функцию), но ничего встроенного.

...