Castor3D 0.16.0
Multiplatform 3D engine
Public Types | Public Member Functions | Friends | List of all members
castor::FlagIterator< FlagTypeT, IteratorTraitsT > Struct Template Reference

Template iterator class on a binary combination of flags. More...

#include <FlagCombination.hpp>

Public Types

using BaseType = typename std::underlying_type< FlagTypeT >::type
 The basic integer type.
 

Public Member Functions

constexpr FlagIterator (FlagIterator &&value) noexcept
 
constexpr FlagIterator (FlagIterator const &value)
 
constexpr FlagIteratoroperator= (FlagIterator &&value) noexcept
 
constexpr FlagIteratoroperator= (FlagIterator const &value)
 
constexpr FlagIterator (BaseType contValue)
 
constexpr FlagIterator (BaseType contValue, FlagTypeT iterValue)
 
constexpr FlagIteratoroperator++ ()
 
constexpr FlagIterator operator++ (int)
 
constexpr FlagTypeT operator* () const
 

Friends

template<typename FlagType , typename IteratorTraits >
constexpr bool operator== (FlagIterator< FlagType, IteratorTraits > const &lhs, FlagIterator< FlagType, IteratorTraits > const &rhs)
 

Detailed Description

template<typename FlagTypeT, typename IteratorTraitsT>
struct castor::FlagIterator< FlagTypeT, IteratorTraitsT >

Template iterator class on a binary combination of flags.

Parameters
FlagTypeThe scoped enum type.

Member Typedef Documentation

◆ BaseType

template<typename FlagTypeT , typename IteratorTraitsT >
using castor::FlagIterator< FlagTypeT, IteratorTraitsT >::BaseType = typename std::underlying_type< FlagTypeT >::type

The basic integer type.

Constructor & Destructor Documentation

◆ FlagIterator() [1/4]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr castor::FlagIterator< FlagTypeT, IteratorTraitsT >::FlagIterator ( FlagIterator< FlagTypeT, IteratorTraitsT > && value)
inlineconstexprnoexcept

◆ FlagIterator() [2/4]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr castor::FlagIterator< FlagTypeT, IteratorTraitsT >::FlagIterator ( FlagIterator< FlagTypeT, IteratorTraitsT > const & value)
inlineconstexpr

◆ FlagIterator() [3/4]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr castor::FlagIterator< FlagTypeT, IteratorTraitsT >::FlagIterator ( BaseType contValue)
inlineexplicitconstexpr

Begin ctor.

◆ FlagIterator() [4/4]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr castor::FlagIterator< FlagTypeT, IteratorTraitsT >::FlagIterator ( BaseType contValue,
FlagTypeT iterValue )
inlineconstexpr

End ctor.

Member Function Documentation

◆ operator*()

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr FlagTypeT castor::FlagIterator< FlagTypeT, IteratorTraitsT >::operator* ( ) const
inlineconstexpr

◆ operator++() [1/2]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr FlagIterator & castor::FlagIterator< FlagTypeT, IteratorTraitsT >::operator++ ( )
inlineconstexpr

◆ operator++() [2/2]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr FlagIterator castor::FlagIterator< FlagTypeT, IteratorTraitsT >::operator++ ( int )
inlineconstexpr

◆ operator=() [1/2]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr FlagIterator & castor::FlagIterator< FlagTypeT, IteratorTraitsT >::operator= ( FlagIterator< FlagTypeT, IteratorTraitsT > && value)
inlineconstexprnoexcept

◆ operator=() [2/2]

template<typename FlagTypeT , typename IteratorTraitsT >
constexpr FlagIterator & castor::FlagIterator< FlagTypeT, IteratorTraitsT >::operator= ( FlagIterator< FlagTypeT, IteratorTraitsT > const & value)
inlineconstexpr

Friends And Related Symbol Documentation

◆ operator==

template<typename FlagTypeT , typename IteratorTraitsT >
template<typename FlagType , typename IteratorTraits >
constexpr bool operator== ( FlagIterator< FlagType, IteratorTraits > const & lhs,
FlagIterator< FlagType, IteratorTraits > const & rhs )
friend

The documentation for this struct was generated from the following files: