Compile-time introspection of enumeration member identifiers.
#include <scl/utility/meta/enum.h>Contents:
enum_name<V>Retrieves the qualified string representation of an enumeration member V at compile-time.
#include <scl/utility/meta/enum.h>template <auto V> requires std::is_enum_v<decltype(V)> constexpr std::string_view enum_name() noexcept;enum prefix in its function signatures. This utility automatically
detects and removes it to ensure the result is consistent with GCC and Clang.Color::Red).#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.
#include <scl/utility/meta/enum.h>template <auto V> requires std::is_enum_v<decltype(V)> constexpr std::string_view enum_short_name() noexcept;#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"
}