mini-llvm 0.1.0
Loading...
Searching...
No Matches
mini_llvm::IndirectIterator< Iterator, Value > Class Template Reference

#include <IndirectIterator.h>

Public Types

using iterator_category = std::iterator_traits<Iterator>::iterator_category
using value_type = Value
using difference_type = std::iterator_traits<Iterator>::difference_type
using pointer = Value *
using reference = Value &

Public Member Functions

 IndirectIterator ()=default
 IndirectIterator (Iterator base)
template<typename Iterator2, typename Value2>
requires std::convertible_to<Iterator2, Iterator>
 IndirectIterator (const IndirectIterator< Iterator2, Value2 > &other)
Iterator base () const
reference operator* () const
reference operator[] (difference_type n) const
pointer operator-> () const
IndirectIteratoroperator++ ()
IndirectIteratoroperator-- ()
IndirectIterator operator++ (int)
IndirectIterator operator-- (int)
IndirectIteratoroperator+= (difference_type n)
IndirectIteratoroperator-= (difference_type n)
bool operator== (const IndirectIterator &rhs) const
bool operator!= (const IndirectIterator &rhs) const
bool operator< (const IndirectIterator &rhs) const
bool operator> (const IndirectIterator &rhs) const
bool operator<= (const IndirectIterator &rhs) const
bool operator>= (const IndirectIterator &rhs) const
difference_type operator- (const IndirectIterator &rhs) const

Friends

template<typename Iterator2, typename Value2>
class IndirectIterator
IndirectIterator operator+ (IndirectIterator i, difference_type n)
IndirectIterator operator- (IndirectIterator i, difference_type n)

Member Typedef Documentation

◆ difference_type

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
using mini_llvm::IndirectIterator< Iterator, Value >::difference_type = std::iterator_traits<Iterator>::difference_type

◆ iterator_category

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
using mini_llvm::IndirectIterator< Iterator, Value >::iterator_category = std::iterator_traits<Iterator>::iterator_category

◆ pointer

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
using mini_llvm::IndirectIterator< Iterator, Value >::pointer = Value *

◆ reference

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
using mini_llvm::IndirectIterator< Iterator, Value >::reference = Value &

◆ value_type

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
using mini_llvm::IndirectIterator< Iterator, Value >::value_type = Value

Constructor & Destructor Documentation

◆ IndirectIterator() [1/3]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
mini_llvm::IndirectIterator< Iterator, Value >::IndirectIterator ( )
default

◆ IndirectIterator() [2/3]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
mini_llvm::IndirectIterator< Iterator, Value >::IndirectIterator ( Iterator base)
inlineexplicit

◆ IndirectIterator() [3/3]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
template<typename Iterator2, typename Value2>
requires std::convertible_to<Iterator2, Iterator>
mini_llvm::IndirectIterator< Iterator, Value >::IndirectIterator ( const IndirectIterator< Iterator2, Value2 > & other)
inline

Member Function Documentation

◆ base()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
Iterator mini_llvm::IndirectIterator< Iterator, Value >::base ( ) const
inline

◆ operator!=()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
bool mini_llvm::IndirectIterator< Iterator, Value >::operator!= ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator*()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
reference mini_llvm::IndirectIterator< Iterator, Value >::operator* ( ) const
inline

◆ operator++() [1/2]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator & mini_llvm::IndirectIterator< Iterator, Value >::operator++ ( )
inline

◆ operator++() [2/2]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator mini_llvm::IndirectIterator< Iterator, Value >::operator++ ( int )
inline

◆ operator+=()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator & mini_llvm::IndirectIterator< Iterator, Value >::operator+= ( difference_type n)
inline

◆ operator-()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
difference_type mini_llvm::IndirectIterator< Iterator, Value >::operator- ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator--() [1/2]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator & mini_llvm::IndirectIterator< Iterator, Value >::operator-- ( )
inline

◆ operator--() [2/2]

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator mini_llvm::IndirectIterator< Iterator, Value >::operator-- ( int )
inline

◆ operator-=()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator & mini_llvm::IndirectIterator< Iterator, Value >::operator-= ( difference_type n)
inline

◆ operator->()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
pointer mini_llvm::IndirectIterator< Iterator, Value >::operator-> ( ) const
inline

◆ operator<()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
bool mini_llvm::IndirectIterator< Iterator, Value >::operator< ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator<=()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
bool mini_llvm::IndirectIterator< Iterator, Value >::operator<= ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator==()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
bool mini_llvm::IndirectIterator< Iterator, Value >::operator== ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator>()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
bool mini_llvm::IndirectIterator< Iterator, Value >::operator> ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator>=()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
bool mini_llvm::IndirectIterator< Iterator, Value >::operator>= ( const IndirectIterator< Iterator, Value > & rhs) const
inline

◆ operator[]()

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
reference mini_llvm::IndirectIterator< Iterator, Value >::operator[] ( difference_type n) const
inline

◆ IndirectIterator

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
template<typename Iterator2, typename Value2>
friend class IndirectIterator
friend

◆ operator+

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator operator+ ( IndirectIterator< Iterator, Value > i,
difference_type n )
friend

◆ operator-

template<typename Iterator, typename Value = typename std::pointer_traits<typename std::iterator_traits<Iterator>::value_type>::element_type>
IndirectIterator operator- ( IndirectIterator< Iterator, Value > i,
difference_type n )
friend

The documentation for this class was generated from the following file: