Skip to content

Releases: fix8mt/conjure_enum

v1.1.0 release

10 Sep 20:47
0198333
Compare
Choose a tag to compare

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 and T::ce_last
  • benchmarking
  • conjure_enum, conjure_type and enum_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 conversion
    • rotl, 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

19 Jul 04:07
fd07101
Compare
Choose a tag to compare

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.