ALib C++ Library
Library Version: 2402 R1
Documentation generated by doxygen
No Matches
iterable.hpp File Reference


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 iterable.hpp.

#include "alib/enums/bitwise.hpp"
#include "alib/enums/underlyingintegral.hpp"
#include <cstdint>
#include <iterator>
Include dependency graph for iterable.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.


struct  EnumIterator< TEnum, TEnableIf >
struct  T_EnumIsIterable< TEnum, TEnableIf >
class  EnumIterator< TEnum, TEnableIf >::TRandomAccessIterator< TPointer, TReference >


namespace  alib
namespace  alib::enums
namespace  alib::enums::iterable


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.

  • 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_ITERABLE(TEnum, StopElement)   ALIB_ENUMS_MAKE_ITERABLE_BEGIN_END( TEnum, TEnum(0), StopElement )
#define ALIB_ENUMS_MAKE_ITERABLE_BEGIN_END(TEnum, StartElement, StopElement)


template<typename TEnum , typename TEnableIf = void>
using EnumIterator = enums::EnumIterator<TEnum, TEnableIf>
 Type alias in namespace alib.


template<typename TEnum >
constexpr TEnum operator+ (TEnum element, int addend) noexcept(true)
template<typename TEnum >
constexpr TEnum operator- (TEnum element, int subtrahend) noexcept(true)