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