stlab-enum-ops 1.1.0
Type-safe operators for enums
|
Arithmetic operations for arithmetic-enabled enums. More...
Functions | |
template<class T> | |
constexpr auto | operator+ (T a) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T > |
Unary plus for arithmetic-enabled enums. | |
template<class T> | |
constexpr auto | operator+ (T lhs, T rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T > |
Addition for arithmetic-enabled enums. | |
template<class T> | |
constexpr auto | operator- (T lhs, T rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T > |
Subtraction for arithmetic-enabled enums. | |
template<class T, class U> | |
constexpr auto | operator* (T lhs, U rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T > |
Multiplication by a scalar value. | |
template<class U, class T> | |
constexpr auto | operator* (U lhs, T rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T > |
Multiplication by a scalar value. | |
template<class T, class U> | |
constexpr auto | operator/ (T lhs, U rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T > |
Division by a scalar value. | |
template<class T, class U> | |
constexpr auto | operator% (T lhs, U rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T > |
Modulo by a scalar value. | |
template<class T> | |
constexpr auto | operator+= (T &lhs, T rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T & > |
Addition assignment for arithmetic-enabled enums. | |
template<class T> | |
constexpr auto | operator-= (T &lhs, T rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T & > |
Subtraction assignment for arithmetic-enabled enums. | |
template<class T, class U> | |
constexpr auto | operator*= (T &lhs, U rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T & > |
Multiplication assignment by a scalar value. | |
template<class T, class U> | |
constexpr auto | operator/= (T &lhs, U rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T & > |
Division assignment by a scalar value. | |
template<class T, class U> | |
constexpr auto | operator%= (T &lhs, U rhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T > &&stlab::is_compatible_scalar< U, T >, T & > |
Modulo assignment by a scalar value. | |
template<class T> | |
constexpr auto | operator++ (T &lhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T & > |
Prefix increment for arithmetic-enabled enums. | |
template<class T> | |
constexpr auto | operator++ (T &lhs, int) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T > |
Postfix increment for arithmetic-enabled enums. | |
template<class T> | |
constexpr auto | operator-- (T &lhs) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T & > |
Prefix decrement for arithmetic-enabled enums. | |
template<class T> | |
constexpr auto | operator-- (T &lhs, int) -> std::enable_if_t< stlab::has_enabled_arithmetic< T >, T > |
Postfix decrement for arithmetic-enabled enums. |
Arithmetic operations for arithmetic-enabled enums.
These operations are available when you enable arithmetic operations by defining: