nCine/Base/Iterator.h file

Namespaces

namespace nCine
Root namespace of nCine game engine.

Classes

struct nCine::ForwardIteratorTag
Dispatching tag for iterators that can only move forward, one element at a time.
struct nCine::BidirectionalIteratorTag
Dispatching tag for iterators that can move both ways, one element at a time.
struct nCine::RandomAccessIteratorTag
Dispatching tag for iterators that can jump arbitrary distances in both ways.
template<class Iterator>
struct nCine::IteratorTraits
Base iterator traits structure.
template<class T>
struct nCine::IteratorTraits<T*>
Base iterator traits structure.
template<class T>
struct nCine::ReversionWrapper

Functions

template<class Iterator>
void advance(Iterator& it, int n)
Increments an iterator by n elements.
template<class Iterator>
auto next(Iterator it, unsigned int n) -> Iterator
Return the nth successor of an iterator.
template<class Iterator>
auto next(Iterator it) -> Iterator
Return the successor of an iterator.
template<class Iterator>
auto prev(Iterator it, unsigned int n) -> Iterator
Return the nth predecessor of an iterator.
template<class Iterator>
auto prev(Iterator it) -> Iterator
Return the predecessor of an iterator.
template<class Iterator>
auto distance(Iterator first, const Iterator last) -> int
Returns the distance between two iterators.
template<class T>
auto begin(ReversionWrapper<T> c) -> decltype(rBegin(c.iterable))
template<class T>
auto end(ReversionWrapper<T> c) -> decltype(rEnd(c.iterable))
template<class T>
auto reverse(T&& iterable) -> ReversionWrapper<T>
template<class Container>
auto begin(Container& c) -> Container::Iterator
template<class Container>
auto cbegin(const Container& c) -> Container::ConstIterator
template<class Container>
auto end(Container& c) -> Container::Iterator
template<class Container>
auto cend(const Container& c) -> Container::ConstIterator
template<class Container>
auto rbegin(Container& c) -> Container::ReverseIterator
template<class Container>
auto crbegin(const Container& c) -> Container::ConstReverseIterator
template<class Container>
auto rend(Container& c) -> Container::ReverseIterator
template<class Container>
auto crend(const Container& c) -> Container::ConstReverseIterator