ALib C++ Library
Library Version: 2412 R0
Documentation generated by doxygen
Loading...
Searching...
No Matches
arithmetical.hpp File Reference

Description:

This header file is part of module ALib Enums of the ALib C++ Library.

© 2013-2024 A-Worx GmbH, Germany. Published under Boost Software License.

Definition in file arithmetical.hpp.

#include "alib/lang/tmp.hpp"
Include dependency graph for arithmetical.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  T_EnumIsArithmetical< TEnum, TEnableIf >
 

Namespaces

namespace  alib
 
namespace  alib::enums
 
namespace  alib::enums::arithmetical
 

Macros

ALib Module Enums

The macros in this section are introduced by module ALib Enums and allow to specialize type-traits structs T_EnumRecords, T_EnumIsArithmetical, T_EnumIsBitwise and T_EnumIsIterable for scoped or non-scoped enum types.

Attention
  • All macros (except ALIB_ENUMS_UNDERLYING_TYPE) in this section have to be placed in global scope (outside of namespaces and types).
  • For technical reasons, neither the macros nor the concepts behind them are applicable to enum types that are defined as private or protected inner types of structs or classes.
#define ALIB_ENUMS_MAKE_ARITHMETICAL(TEnum)
 

Typedefs

template<typename TEnum >
using T_EnumIsArithmetical = enums::T_EnumIsArithmetical<TEnum>
 Type alias in namespace alib.
 

Functions

template<typename TEnum >
constexpr TEnum operator% (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator%= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator* (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator*= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator+ (TEnum arg) noexcept
 
template<typename TEnum >
constexpr TEnum operator+ (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator+ (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator++ (TEnum &arg) noexcept
 
template<typename TEnum >
constexpr TEnum operator++ (TEnum &arg, typename std::underlying_type< TEnum >::type) noexcept
 
template<typename TEnum >
constexpr TEnum operator+= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator+= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator- (TEnum arg) noexcept
 
template<typename TEnum >
constexpr TEnum operator- (TEnum lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator- (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator-- (TEnum &arg) noexcept
 
template<typename TEnum >
constexpr TEnum operator-- (TEnum &arg, typename std::underlying_type< TEnum >::type) noexcept
 
template<typename TEnum >
constexpr TEnum operator-= (TEnum &lhs, TEnum rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator-= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator/ (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator/= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr bool operator< (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator<< (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator<<= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr bool operator<= (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr bool operator> (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr bool operator>= (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator>> (TEnum lhs, typename std::underlying_type< TEnum >::type rhs) noexcept
 
template<typename TEnum >
constexpr TEnum operator>>= (TEnum &lhs, typename std::underlying_type< TEnum >::type rhs) noexcept