Dash Core Source Documentation (0.16.0.1)

Find detailed information regarding the Dash Core source code.

immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT > Class Template Reference

#include <iterator_facade.hpp>

+ Inheritance diagram for immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >:
+ Collaboration diagram for immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >:

Classes

class  reference_proxy
 

Public Member Functions

ReferenceT operator* () const
 
PointerT operator-> () const
 
reference_proxy operator[] (DifferenceTypeT n) const
 
bool operator== (const DerivedT &rhs) const
 
bool operator!= (const DerivedT &rhs) const
 
DerivedT & operator++ ()
 
DerivedT operator++ (int)
 
DerivedT & operator-- ()
 
DerivedT operator-- (int)
 
DerivedT & operator+= (DifferenceTypeT n)
 
DerivedT & operator-= (DifferenceTypeT n)
 
DerivedT operator+ (DifferenceTypeT n) const
 
DerivedT operator- (DifferenceTypeT n) const
 
DifferenceTypeT operator- (const DerivedT &rhs) const
 
bool operator< (const DerivedT &rhs) const
 
bool operator<= (const DerivedT &rhs) const
 
bool operator> (const DerivedT &rhs) const
 
bool operator>= (const DerivedT &rhs) const
 

Protected Types

using access_t = iterator_core_access
 

Protected Member Functions

const DerivedT & derived () const
 
DerivedT & derived ()
 

Static Protected Attributes

static constexpr auto is_random_access
 
static constexpr auto is_bidirectional
 

Friends

DerivedT operator+ (DifferenceTypeT n, const DerivedT &i)
 

Detailed Description

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
class immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >

Minimalistic reimplementation of boost::iterator_facade

Definition at line 54 of file iterator_facade.hpp.

Member Typedef Documentation

◆ access_t

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
using immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::access_t = iterator_core_access
protected

Definition at line 62 of file iterator_facade.hpp.

Member Function Documentation

◆ derived() [1/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
const DerivedT& immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::derived ( ) const
inlineprotected

Definition at line 82 of file iterator_facade.hpp.

Referenced by immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator!=(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator*(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator+(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator++(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator+=(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator-(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator--(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator-=(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator->(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator<(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator<=(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator==(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator>(), immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator>=(), and immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator[]().

◆ derived() [2/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT& immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::derived ( )
inlineprotected

Definition at line 88 of file iterator_facade.hpp.

◆ operator!=()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
bool immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator!= ( const DerivedT &  rhs) const
inline

Definition at line 114 of file iterator_facade.hpp.

◆ operator*()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
ReferenceT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator* ( ) const
inline

Definition at line 96 of file iterator_facade.hpp.

◆ operator+()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator+ ( DifferenceTypeT  n) const
inline

Definition at line 156 of file iterator_facade.hpp.

◆ operator++() [1/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT& immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator++ ( )
inline

Definition at line 119 of file iterator_facade.hpp.

◆ operator++() [2/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator++ ( int  )
inline

Definition at line 124 of file iterator_facade.hpp.

◆ operator+=()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT& immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator+= ( DifferenceTypeT  n)
inline

Definition at line 145 of file iterator_facade.hpp.

◆ operator-() [1/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator- ( DifferenceTypeT  n) const
inline

Definition at line 167 of file iterator_facade.hpp.

◆ operator-() [2/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DifferenceTypeT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator- ( const DerivedT &  rhs) const
inline

Definition at line 173 of file iterator_facade.hpp.

◆ operator--() [1/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT& immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator-- ( )
inline

Definition at line 131 of file iterator_facade.hpp.

◆ operator--() [2/2]

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator-- ( int  )
inline

Definition at line 137 of file iterator_facade.hpp.

◆ operator-=()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT& immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator-= ( DifferenceTypeT  n)
inline

Definition at line 150 of file iterator_facade.hpp.

◆ operator->()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
PointerT immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator-> ( ) const
inline

Definition at line 100 of file iterator_facade.hpp.

◆ operator<()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
bool immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator< ( const DerivedT &  rhs) const
inline

Definition at line 179 of file iterator_facade.hpp.

◆ operator<=()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
bool immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator<= ( const DerivedT &  rhs) const
inline

Definition at line 184 of file iterator_facade.hpp.

◆ operator==()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
bool immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator== ( const DerivedT &  rhs) const
inline

Definition at line 110 of file iterator_facade.hpp.

◆ operator>()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
bool immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator> ( const DerivedT &  rhs) const
inline

Definition at line 189 of file iterator_facade.hpp.

◆ operator>=()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
bool immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator>= ( const DerivedT &  rhs) const
inline

Definition at line 194 of file iterator_facade.hpp.

◆ operator[]()

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
reference_proxy immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::operator[] ( DifferenceTypeT  n) const
inline

Definition at line 104 of file iterator_facade.hpp.

Friends And Related Function Documentation

◆ operator+

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
DerivedT operator+ ( DifferenceTypeT  n,
const DerivedT &  i 
)
friend

Definition at line 162 of file iterator_facade.hpp.

Member Data Documentation

◆ is_bidirectional

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
constexpr auto immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::is_bidirectional
staticprotected
Initial value:
=
std::is_base_of<std::bidirectional_iterator_tag,
IteratorCategoryT>::value

Definition at line 67 of file iterator_facade.hpp.

Referenced by immer::detail::iterator_facade< rrbtree_iterator< T, MP, B, BL >, std::random_access_iterator_tag, T, const T &, std::ptrdiff_t, const T *>::operator--().

◆ is_random_access

template<typename DerivedT, typename IteratorCategoryT, typename T, typename ReferenceT = T&, typename DifferenceTypeT = std::ptrdiff_t, typename PointerT = T*>
constexpr auto immer::detail::iterator_facade< DerivedT, IteratorCategoryT, T, ReferenceT, DifferenceTypeT, PointerT >::is_random_access
staticprotected

The documentation for this class was generated from the following file:
Released under the MIT license