Releases: fix8mt/conjure_enum
v1.2.0 release
This release adds improvements and changes, including some from user feedback.
- update cmake build, add options
- update API including more C++20
for_each,for_each_n,dispatch - update
enum_bitsetctor, usingstd::initializer_list - added
starts_from_zero - updated and extended unit tests, srcloc tests
- update documentation
- fixed
std::ostreammissing error
v1.1.0 release
This release adds improvements and changes, including some from user feedback.
enum_rangeper enum range with various options:- specialization of
enum_rangeclass; convenience macros T::ce_firstandT::ce_last
- specialization of
- benchmarking
conjure_enum,conjure_typeandenum_bitsetnow in separate includes- significant improvements in compile times
- selectable compile optimizations, including
FIX8_CONJURE_ENUM_ALL_OPTIMIZATIONSFIX8_CONJURE_ENUM_IS_CONTINUOUSFIX8_CONJURE_ENUM_NO_ANONFIX8_CONJURE_ENUM_MINIMAL
- bug fixes
conjure_enumAPI additions:is_continuousin_rangeindexenum_castget_enum_min_value,get_enum_max_valuemin_v,max_vget_actual_enum_min_value,get_actual_enum_max_value
enum_bitsetAPI additions:std::bitsetconstructor and conversionrotl,rotrhas_single_bitto_hex_stringget_underlying,get_underlying_bit_sizeget_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.