foreach.h File Reference

Classes

struct  GetIteratorType< C >
 
struct  GetIteratorType< T[N]>
 
struct  IterableBeginHelper< I >
 
struct  IterableBeginHelper< T[N]>
 
struct  IterableBeginHelper< T(&)[N]>
 
struct  ReverseIterable< I >
 
struct  ReverseIterable< I >::Iterator
 
class  ReverseIterator< IT >
 
class  ForEachIterator< ITERATOR, SUPER >
 
class  ForEachIterator< ITERATOR, SUPER >::Wrapper
 
class  AutoIterator< C >
 
class  AutoIterator< T[N]>
 
class  NestedForEachIterator< I1, I2 >
 
class  CommonIteratorTypes< T, I1, I2 >
 
class  CommonIteratorTypes< void, I1, I2 >
 
class  ConcatForEachIterator< T, I1, I2 >
 
class  ConditionalForEachIterator< T, I1, I2 >
 
class  MapForEachIterator< MAP, I >
 
class  FilterForEachIterator< FILTER, I >
 
class  ZipForEachIterator< I1, I2 >
 
class  IndexForEachIterator< I >
 
class  SingletonForEachIterator< T >
 
class  EraseIterator< COLLECTION, SWAP_ERASE, IS_FOREACH_ITERATOR >
 
class  EraseIterator< COLLECTION, SWAP_ERASE, false >
 
class  Iterable
 
class  Iterable::IteratorType< ITERABLE >
 

Namespaces

 maxon
 
 maxon::details
 

Functions

 MAXON_MEMBERTYPE_DETECTOR (GetNonConstIteratorType, Iterator, std::false_type)
 
 MAXON_MEMBERTYPE_DETECTOR (GetConstIteratorType, ConstIterator, std::false_type)
 
 MAXON_MEMBERTYPE_DETECTOR (GetCollectionType, CollectionType, T)
 
 MAXON_MEMBERTYPE_DETECTOR (IsForEachIterator, IsForEachIterator, std::false_type)
 
template<typename I >
ReverseIterator< typename GetIteratorType< typename std::remove_reference< I >::type >::typeRBegin (I &&iterable)
 
template<typename I >
ReverseIterator< typename GetIteratorType< typename std::remove_reference< I >::type >::typeREnd (I &&iterable)
 
template<typename COLLECTION >
MAXON_ATTRIBUTE_FORCE_INLINE auto begin (COLLECTION &&c) -> decltype(c.Begin())
 
template<typename COLLECTION >
MAXON_ATTRIBUTE_FORCE_INLINE auto end (COLLECTION &&c) -> decltype(c.End())
 
template<typename COLLECTION , typename... ARGS>
void EraseHelper (COLLECTION &collection, typename COLLECTION::Iterator &it, std::false_type *, ARGS &&... args)
 
template<typename COLLECTION , typename... ARGS>
void EraseHelper (COLLECTION &collection, typename COLLECTION::Iterator &it, std::true_type *, ARGS &&... args)