Вы хотите сказать, что хотите иметь возможность делать то, что делает EnumDescriptor , без генерации "кода / данных отражения" во время компиляции? Я не думаю, что есть способ сделать это. Это немного сбивает с толку то, что вы подразумеваете под , должно использовать Reflection . Действительно, EnumDescriptor использует версию отражения C ++.
Отражение по умолчанию недоступно в c ++. Поэтому, если вы хотите, вы должны написать свой синтаксический анализатор владельца (например, protobuf) или написать некоторый магический код макроса / шаблона (например, SO answer ), чтобы сгенерировать необходимые данные для отражения. Вы просто не можете использовать рефлексию, вам нужны метаданные о классе / перечислениях.
Возможно, я мог бы добавить больше, если вы уточните, что вам нужно делать и почему?