scl-utility

Enum name utilities

Compile-time introspection of enumeration member identifiers.

Contents:


enum_name<V>

Retrieves the qualified string representation of an enumeration member V at compile-time.

Semantics

Examples

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

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

// Scoped enums
static_assert(scl::enum_name<Color::Red>() == "Color::Red");

// Unscoped enums
static_assert(scl::enum_name<Active>() == "Active");

enum_short_name<V>

Retrieves only the identifier of the enum member V, stripping any type or namespace qualifiers.

Example

#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; // Output: "Current mode: Fast"
}