Releases: fix8mt/conjure_enum
v1.1.0 release
This release adds improvements and changes, including some from user feedback.
enum_range
per enum range with various options:- specialization of
enum_range
class; convenience macros T::ce_first
andT::ce_last
- specialization of
- benchmarking
conjure_enum
,conjure_type
andenum_bitset
now in separate includes- significant improvements in compile times
- selectable compile optimizations, including
FIX8_CONJURE_ENUM_ALL_OPTIMIZATIONS
FIX8_CONJURE_ENUM_IS_CONTINUOUS
FIX8_CONJURE_ENUM_NO_ANON
FIX8_CONJURE_ENUM_MINIMAL
- bug fixes
conjure_enum
API additions:is_continuous
in_range
index
enum_cast
get_enum_min_value
,get_enum_max_value
min_v
,max_v
get_actual_enum_min_value
,get_actual_enum_max_value
enum_bitset
API additions:std::bitset
constructor and conversionrotl
,rotr
has_single_bit
to_hex_string
get_underlying
,get_underlying_bit_size
get_bit_mask
,get_unused_bit_mask
- specialization for
std::hash
countl_zero
,countl_one
,countr_zero
,countr_one
- const and non-const subscript operator (set and test)
- expanded unit tests, edge case tests
- updated to latest supported compilers
- updated examples
- documentation reorganised and expanded
v1.0.1 release
Announcing the release of version 1.0.1 of conjure_enum
, a lightweight header-only C++20 library designed to streamline working with enums by providing comprehensive enum reflection capabilities.
Conjure_enum: Empowering Your C++ Enum Workflows
conjure_enum
empowers you to manipulate enums in C++20 with ease. It boasts a rich set of functionalities that enhance code readability, maintainability, and flexibility. Here's a closer look at what conjure_enum
brings to the table:
- Effortless String-to-Enum and Enum-to-String Conversion: Effortlessly convert between string representations and their corresponding enum values, making it ideal for user input processing or data parsing.
- Seamless Enum Iteration: Iterate over the elements of an enum with ease, simplifying common operations like processing all enum values in a loop.
- Underlying Integer Value Retrieval: Retrieve the underlying integer value associated with an enum element, useful for scenarios where numerical representations are required.
- Enumeration Size Determination: Determine the total number of elements within an enum, aiding in tasks like pre-allocating memory or dynamically iterating.
- Enum Name and Value Access: Retrieve comprehensive information about enums, including lists of all enum names, their corresponding values, and even name-value pairs.
- Scoped Enum Handling: Effectively handle scoped enums by determining if an enum is scoped and removing the scope from scoped enum names if necessary.
- Value Validation: Verify if a given value is a valid member of an enum, ensuring data integrity and preventing unexpected behavior.
- Underlying Type Acquisition: Get the underlying type of the enum, providing valuable insights into the enum's data representation.
Embrace a Modern C++ Enum Experience with conjure_enum
conjure_enum
's header-only design ensures effortless integration into your C++20 projects, while its intuitive API fosters a smooth development experience. With its rich set of functionalities, conjure_enum
empowers you to work with enums in C++20 more effectively and efficiently.