7#ifndef SkEnumOperators_DEFINED
8#define SkEnumOperators_DEFINED
17 return static_cast<std::underlying_type_t<E>
>(
e) != 0;
23 using U = std::underlying_type_t<E>;
24 return static_cast<E>(
static_cast<U>(l) |
static_cast<U>(r));
34 using U = std::underlying_type_t<E>;
35 return static_cast<E>(
static_cast<U>(l) &
static_cast<U>(r));
45 using U = std::underlying_type_t<E>;
46 return static_cast<E>(
static_cast<U>(l) ^
static_cast<U>(r));
56 return static_cast<E>(~static_cast<std::underlying_type_t<E>>(
e));
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E > constexpr operator&(E l, E r)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E & > constexpr operator&=(E &l, E r)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E & > constexpr operator^=(E &l, E r)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E > constexpr operator~(E e)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E > constexpr operator|(E l, E r)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E & > constexpr operator|=(E &l, E r)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, E > constexpr operator^(E l, E r)
std::enable_if_t< sknonstd::is_bitmask_enum< E >::value, bool > constexpr Any(E e)