|
deaddev-bitmask 1.0.1
C++ bitmask library
|
some utility structures and functions More...
Classes | |
| struct | bitmask_operations_check_traits |
| trait implementation More... | |
| struct | bitmask_traits |
| used for deaddev::details::is_bitmask_v<T> and deaddev::details::bitmask_all_flags_v<T> More... | |
| struct | empty_bitmask_traits |
| default value More... | |
Functions | |
| template<typename T > | |
| DEADDEV_CONSTEVAL auto | combine_flags (::std::underlying_type_t< T > &result, T value) -> void |
| Flag combination routine. | |
| template<typename T > | |
| DEADDEV_CONSTEVAL auto | calculate_all_flags_cpp_before_17 (T val) -> T |
| sentinel recursion overload for all flags calculation | |
| template<typename T , typename... Args> | |
| DEADDEV_CONSTEVAL auto | calculate_all_flags_cpp_before_17 (T arg, Args... args) -> T |
| C++14 implementation for calculate_all_flags. | |
| template<typename T , typename... Args> | |
| DEADDEV_CONSTEVAL auto | calculate_all_flags (Args... args) -> T |
| Combines flags. | |
| template<typename T > | |
| DEADDEV_CONSTEVAL auto | calculate_all_flags () -> T |
| returns all flags | |
| auto | adl_bitmask_operations_check (...) -> ::deaddev::details::empty_bitmask_traits |
| noop | |
Variables | |
| template<typename T > | |
| constexpr bool | is_scoped_enum_v |
| c++14 compatible std::is_scoped_enum | |
| template<typename T , typename = typename ::std::enable_if<::std::is_enum<T>::value>::type> | |
| constexpr bool | is_bitmask_v |
| Is T a bitmask type. | |
| template<typename T , typename = typename ::std::enable_if<::std::is_enum<T>::value>::type> | |
| constexpr T | bitmask_all_flags_v |
| All flags combined. | |
some utility structures and functions
| auto deaddev::details::adl_bitmask_operations_check | ( | ... | ) | -> ::deaddev::details::empty_bitmask_traits |
noop
This function does nothing but it's used to get bitmask traits type using argument-dependent lookup (ADL)
| ... | placeholder for ADL |
| DEADDEV_CONSTEVAL auto deaddev::details::calculate_all_flags | ( | ) | -> T |
returns all flags
there's no all flags specified then library will use (T)-1
| T | bitmask type |
| DEADDEV_CONSTEVAL auto deaddev::details::calculate_all_flags | ( | Args... | args | ) | -> T |
Combines flags.
Uses folding expressions to easily combine all flags using binary or operator
| T | enum type |
| Args | enum types or integers |
| args | all flags list |
| DEADDEV_CONSTEVAL auto deaddev::details::calculate_all_flags_cpp_before_17 | ( | T | arg, |
| Args... | args ) -> T |
C++14 implementation for calculate_all_flags.
| T | enum type |
| Args | enum values |
| arg | first enum value |
| args | rest of values |
| DEADDEV_CONSTEVAL auto deaddev::details::calculate_all_flags_cpp_before_17 | ( | T | val | ) | -> T |
sentinel recursion overload for all flags calculation
| T | enum type |
| val | value |
| DEADDEV_CONSTEVAL auto deaddev::details::combine_flags | ( | ::std::underlying_type_t< T > & | result, |
| T | value ) -> void |
Flag combination routine.
| T | flag type |
| result | |
| value |
|
constexpr |
All flags combined.
All flags combination for better negation
| T | enum type |
| typename | SFINAE |
|
constexpr |
Is T a bitmask type.
Check if the bitmask operations are enabled for T
| T | enum type |
| typename | SFINAE |
|
constexpr |
c++14 compatible std::is_scoped_enum
| T | enum type |