#ifndef SkEnumOperators_DEFINED
#define SkEnumOperators_DEFINED
#include <type_traits>
namespace sknonstd {
template <typename T> struct is_bitmask_enum : std::false_type { … };
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, bool> constexpr Any(E e) { … }
}
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator|(E l, E r) { … }
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E&> constexpr operator|=(E& l, E r) { … }
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator&(E l, E r) { … }
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E&> constexpr operator&=(E& l, E r) { … }
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator^(E l, E r) { … }
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E&> constexpr operator^=(E& l, E r) { … }
template <typename E>
std::enable_if_t<sknonstd::is_bitmask_enum<E>::value, E> constexpr operator~(E e) { … }
#endif