enum_view
enum_view
is a class template that provides a range view over an enumeration, facilitating iteration over its values. It conforms to std::ranges::view_interface
, ensuring compatibility with the Standard Library’s ranges.
enumeration
: The enum type over which the view is created must satisfy the enum_concept
, ensuring it is an enumeration.Default Constructor: Initializes the view to cover the entire range of the enumeration. Requires the enumeration to satisfy bounded_enum
, ensuring that first
and last
values are defined.
Range Constructor: Initializes the view with custom first and last enumeration values provided.
constexpr auto view_over_lorem_ipsum = enum_view<lorem_ipsum>{} | std::views::transform(enum_name);
std::cout << "simple_enum " SIMPLE_ENUM_NAME_VERSION "\n";
for(auto data: view_over_lorem_ipsum)
std::cout << " " << data << '\n';
This example demonstrates creating an enum_view
over the lorem_ipsum
enumeration, transforming it with enum_name
for string representation, and iterating over the values to print them.
enum_view(enumeration) -> enum_view<enumeration>;
enum_view(enumeration, enumeration) -> enum_view<enumeration>;
These guides assist in the automatic deduction of the enum_view
template arguments, simplifying its usage.
enum_view
leverages compile-time metadata to enable efficient iteration over enum ranges.