NestedForEachIterator< I1, I2 > Class Template Reference

#include <foreach.h>

Inheritance diagram for NestedForEachIterator< I1, I2 >:

Public Types

using Outer = I1
 
using Inner = I2
 
using ValueType = decltype(*std::declval< I2 >())
 
- Public Types inherited from ForEachIterator< NestedForEachIterator< I1, I2 > >
using IsForEachIterator = std::true_type
 

Public Member Functions

MAXON_ATTRIBUTE_FORCE_INLINE NestedForEachIterator (I1 &&it)
 
MAXON_ATTRIBUTE_FORCE_INLINE ~NestedForEachIterator ()
 
MAXON_ATTRIBUTE_FORCE_INLINE operator Bool () const
 
MAXON_ATTRIBUTE_FORCE_INLINE void operator++ ()
 
MAXON_ATTRIBUTE_FORCE_INLINE ValueType operator* () const
 
MAXON_ATTRIBUTE_FORCE_INLINE std::remove_reference< ValueType >::typeoperator-> () const
 
- Public Member Functions inherited from ForEachIterator< NestedForEachIterator< I1, I2 > >
MAXON_ATTRIBUTE_FORCE_INLINE ForEachIterator (ARGS &&... args)
 
String ToString (const FormatStatement *formatStatement=nullptr)
 
NestedForEachIterator< I1, I2 > & Find (const T &v)
 
Int FindIndex (const T &v)
 
MAXON_ATTRIBUTE_FORCE_INLINE Bool Contains (const T &v)
 
MAXON_ATTRIBUTE_FORCE_INLINE Wrapper begin ()
 

Private Member Functions

void MoveToValid ()
 

Private Attributes

I1 _outerIterator
 
union {
   Char   _innerIterator [SIZEOF(I2)]
 
   void *   _alignmentDummy
 
}; 
 
Bool _valid
 

Additional Inherited Members

- Static Public Member Functions inherited from ForEachIterator< NestedForEachIterator< I1, I2 > >
static MAXON_ATTRIBUTE_FORCE_INLINE PRIVATE_MAXON_RBF_SENTINEL (Wrapper) end()
 

Member Typedef Documentation

◆ Outer

using Outer = I1

◆ Inner

using Inner = I2

◆ ValueType

using ValueType = decltype(*std::declval<I2>())

Constructor & Destructor Documentation

◆ NestedForEachIterator()

◆ ~NestedForEachIterator()

Member Function Documentation

◆ operator Bool()

MAXON_ATTRIBUTE_FORCE_INLINE operator Bool ( ) const
explicit

◆ operator++()

MAXON_ATTRIBUTE_FORCE_INLINE void operator++ ( )

◆ operator*()

◆ operator->()

MAXON_ATTRIBUTE_FORCE_INLINE std::remove_reference<ValueType>::type* operator-> ( ) const

◆ MoveToValid()

void MoveToValid ( )
private

Member Data Documentation

◆ _outerIterator

I1 _outerIterator
private

◆ _innerIterator

Char _innerIterator[SIZEOF(I2)]

◆ _alignmentDummy

void* _alignmentDummy

◆ 

union { ... }

◆ _valid

Bool _valid
private