Adobe Source Libraries 1.49.0
A collection of C++ libraries.
Loading...
Searching...
No Matches
enum_ops.hpp File Reference

Go to the source code of this file.

Namespaces

namespace  adobe

Macros

#define ADOBE_DEFINE_BITSET_OPS(EnumType)
#define ADOBE_DEFINE_ARITHMETIC_OPS(EnumType)

Functions

auto adobe_enable_bitmask_enum (...) -> std::false_type
auto adobe_enable_arithmetic_enum (...) -> std::false_type
template<typename T>
constexpr auto operator& (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator~ (const T a) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator| (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator^ (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator^= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator&= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator|= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_bitmask< T >, T >
template<typename T>
constexpr auto operator+ (const T a) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator- (const T a) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator+ (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator- (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator* (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator/ (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator% (const T lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator+= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator-= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator*= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator/= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator%= (T &lhs, const T rhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator++ (T &lhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator++ (T &lhs, int) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator-- (T &lhs) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >
template<typename T>
constexpr auto operator-- (T &lhs, int) -> std::enable_if_t< adobe::implementation::has_enabled_arithmetic< T >, T >

Macro Definition Documentation

◆ ADOBE_DEFINE_BITSET_OPS

#define ADOBE_DEFINE_BITSET_OPS ( EnumType)

Definition at line 90 of file enum_ops.hpp.

◆ ADOBE_DEFINE_ARITHMETIC_OPS

#define ADOBE_DEFINE_ARITHMETIC_OPS ( EnumType)

Definition at line 141 of file enum_ops.hpp.

Function Documentation

◆ operator&()

template<typename T>
auto operator& ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 95 of file enum_ops.hpp.

◆ operator~()

template<typename T>
auto operator~ ( const T a) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 102 of file enum_ops.hpp.

◆ operator|()

template<typename T>
auto operator| ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 109 of file enum_ops.hpp.

◆ operator^()

template<typename T>
auto operator^ ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 116 of file enum_ops.hpp.

◆ operator^=()

template<typename T>
auto operator^= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 123 of file enum_ops.hpp.

◆ operator&=()

template<typename T>
auto operator&= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 129 of file enum_ops.hpp.

◆ operator|=()

template<typename T>
auto operator|= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_bitmask<T>, T>
constexpr

Definition at line 135 of file enum_ops.hpp.

◆ operator+() [1/2]

template<typename T>
auto operator+ ( const T a) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 144 of file enum_ops.hpp.

◆ operator-() [1/2]

template<typename T>
auto operator- ( const T a) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 151 of file enum_ops.hpp.

◆ operator+() [2/2]

template<typename T>
auto operator+ ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 158 of file enum_ops.hpp.

◆ operator-() [2/2]

template<typename T>
auto operator- ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 165 of file enum_ops.hpp.

◆ operator*()

template<typename T>
auto operator* ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 172 of file enum_ops.hpp.

◆ operator/()

template<typename T>
auto operator/ ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 179 of file enum_ops.hpp.

◆ operator%()

template<typename T>
auto operator% ( const T lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 186 of file enum_ops.hpp.

◆ operator+=()

template<typename T>
auto operator+= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 193 of file enum_ops.hpp.

◆ operator-=()

template<typename T>
auto operator-= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 199 of file enum_ops.hpp.

◆ operator*=()

template<typename T>
auto operator*= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 205 of file enum_ops.hpp.

◆ operator/=()

template<typename T>
auto operator/= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 211 of file enum_ops.hpp.

◆ operator%=()

template<typename T>
auto operator%= ( T & lhs,
const T rhs ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 217 of file enum_ops.hpp.

◆ operator++() [1/2]

template<typename T>
auto operator++ ( T & lhs) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 223 of file enum_ops.hpp.

◆ operator++() [2/2]

template<typename T>
auto operator++ ( T & lhs,
int  ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 229 of file enum_ops.hpp.

◆ operator--() [1/2]

template<typename T>
auto operator-- ( T & lhs) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 237 of file enum_ops.hpp.

◆ operator--() [2/2]

template<typename T>
auto operator-- ( T & lhs,
int  ) -> std::enable_if_t<adobe::implementation::has_enabled_arithmetic<T>, T>
constexpr

Definition at line 243 of file enum_ops.hpp.