scl-utility

Утилиты для получения имени перечисления

Интроспекция идентификаторов членов перечислений на этапе компиляции.

Содержание:


enum_name<V>

Возвращает квалифицированное строковое представление члена перечисления V на этапе компиляции.

Семантика

Примеры

#include <scl/utility/meta/enum.h>

enum class Color { Red, Green, Blue };
enum Status { Active };

// Перечисления с областью видимости (scoped)
static_assert(scl::enum_name<Color::Red>() == "Color::Red");

// Перечисления без области видимости (unscoped)
static_assert(scl::enum_name<Active>() == "Active");

enum_short_name<V>

Возвращает только идентификатор члена перечисления V, удаляя все квалификаторы типа и пространства имён.

Пример

#include <scl/utility/meta/enum.h>

namespace gfx { enum class Mode { Fast, Safe }; }

void log_mode() {
    constexpr auto name = scl::enum_short_name<gfx::Mode::Fast>();
    std::cout << "Current mode: " << name << std::endl; // Вывод: "Current mode: Fast"
}