#c #enum-class
#c #enum-class
Вопрос:
Я пишу простой наивный байесовский классификатор изображений на C . Я хотел бы параметризовать его двумя enum class
типами (один для типа входных пикселей, другой для класса изображения). Проблема в том, что часть спецификации требует, чтобы я мог записывать классификатор в файл, поэтому мне нужно иметь возможность получать целочисленные значения всех элементов в рассматриваемых классах enum. Это, конечно, требует от меня получения всех значений из классов enum, о которых идет речь.
На Java я могу написать
EnumSet.allOf(PixelTypeEnum.class)
чтобы получить набор, содержащий каждый элемент класса enum. Есть ли похожая идиома в C ?
Ответ №1:
Нет, такого нет. Это потому, что C не имеет отражения.
Есть несколько подходов, которые вы можете использовать для имитации EnumSet
(например, этой FlagSet
реализации, которую я использовал, и к которой я добавил тривиальную setAll
функцию), но ничего встроенного.