MySQL 8.0.30
Source Code Documentation
mem_root_deque< Element_type >::Iterator< Iterator_element_type > Class Template Reference

#include <mem_root_deque.h>

Public Types

using difference_type = ptrdiff_t
 
using value_type = Iterator_element_type
 
using pointer = Iterator_element_type *
 
using reference = Iterator_element_type &
 
using iterator_category = std::random_access_iterator_tag
 

Public Member Functions

 Iterator ()=default
 
 Iterator (const mem_root_deque *deque, size_t physical_idx)
 
template<class T , typename = std::enable_if_t< std::is_const<Iterator_element_type>::value && std::is_same<typename T::value_type, std::remove_const_t<Iterator_element_type>>::value>>
 Iterator (const T &other)
 For const_iterator: Implicit conversion from iterator. More...
 
Iterator_element_type & operator* () const
 
Iteratoroperator++ ()
 
bool operator== (const Iterator &other) const
 
bool operator!= (const Iterator &other) const
 
Iterator_element_type * operator-> () const
 
Iterator operator++ (int)
 
Iteratoroperator-- ()
 
Iterator operator-- (int)
 
Iteratoroperator+= (difference_type diff)
 
Iteratoroperator-= (difference_type diff)
 
Iterator operator+ (difference_type offset)
 
Iterator operator- (difference_type offset)
 
difference_type operator- (const Iterator &other) const
 
Iterator_element_type & operator[] (size_t idx) const
 
bool operator< (const Iterator &other) const
 
bool operator<= (const Iterator &other) const
 
bool operator> (const Iterator &other) const
 
bool operator>= (const Iterator &other) const
 

Private Member Functions

void assert_not_invalidated () const
 

Private Attributes

const mem_root_dequem_deque = nullptr
 
size_t m_physical_idx = 0
 
size_t m_generation = 0
 

Friends

class mem_root_deque
 

Member Typedef Documentation

◆ difference_type

template<class Element_type >
template<class Iterator_element_type >
using mem_root_deque< Element_type >::Iterator< Iterator_element_type >::difference_type = ptrdiff_t

◆ iterator_category

template<class Element_type >
template<class Iterator_element_type >
using mem_root_deque< Element_type >::Iterator< Iterator_element_type >::iterator_category = std::random_access_iterator_tag

◆ pointer

template<class Element_type >
template<class Iterator_element_type >
using mem_root_deque< Element_type >::Iterator< Iterator_element_type >::pointer = Iterator_element_type *

◆ reference

template<class Element_type >
template<class Iterator_element_type >
using mem_root_deque< Element_type >::Iterator< Iterator_element_type >::reference = Iterator_element_type &

◆ value_type

template<class Element_type >
template<class Iterator_element_type >
using mem_root_deque< Element_type >::Iterator< Iterator_element_type >::value_type = Iterator_element_type

Constructor & Destructor Documentation

◆ Iterator() [1/3]

template<class Element_type >
template<class Iterator_element_type >
mem_root_deque< Element_type >::Iterator< Iterator_element_type >::Iterator ( )
default

◆ Iterator() [2/3]

template<class Element_type >
template<class Iterator_element_type >
mem_root_deque< Element_type >::Iterator< Iterator_element_type >::Iterator ( const mem_root_deque deque,
size_t  physical_idx 
)
inline

◆ Iterator() [3/3]

template<class Element_type >
template<class Iterator_element_type >
template<class T , typename = std::enable_if_t< std::is_const<Iterator_element_type>::value && std::is_same<typename T::value_type, std::remove_const_t<Iterator_element_type>>::value>>
mem_root_deque< Element_type >::Iterator< Iterator_element_type >::Iterator ( const T &  other)
inline

For const_iterator: Implicit conversion from iterator.

This is written in a somewhat cumbersome fashion to avoid declaring an explicit copy constructor for iterator, which causes compiler warnings other places for some compilers.

Member Function Documentation

◆ assert_not_invalidated()

template<class Element_type >
template<class Iterator_element_type >
void mem_root_deque< Element_type >::Iterator< Iterator_element_type >::assert_not_invalidated ( ) const
inlineprivate

◆ operator!=()

template<class Element_type >
template<class Iterator_element_type >
bool mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator!= ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator*()

template<class Element_type >
template<class Iterator_element_type >
Iterator_element_type & mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator* ( ) const
inline

◆ operator+()

template<class Element_type >
template<class Iterator_element_type >
Iterator mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator+ ( difference_type  offset)
inline

◆ operator++() [1/2]

template<class Element_type >
template<class Iterator_element_type >
Iterator & mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator++ ( )
inline

◆ operator++() [2/2]

template<class Element_type >
template<class Iterator_element_type >
Iterator mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator++ ( int  )
inline

◆ operator+=()

template<class Element_type >
template<class Iterator_element_type >
Iterator & mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator+= ( difference_type  diff)
inline

◆ operator-() [1/2]

template<class Element_type >
template<class Iterator_element_type >
difference_type mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator- ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator-() [2/2]

template<class Element_type >
template<class Iterator_element_type >
Iterator mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator- ( difference_type  offset)
inline

◆ operator--() [1/2]

template<class Element_type >
template<class Iterator_element_type >
Iterator & mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator-- ( )
inline

◆ operator--() [2/2]

template<class Element_type >
template<class Iterator_element_type >
Iterator mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator-- ( int  )
inline

◆ operator-=()

template<class Element_type >
template<class Iterator_element_type >
Iterator & mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator-= ( difference_type  diff)
inline

◆ operator->()

template<class Element_type >
template<class Iterator_element_type >
Iterator_element_type * mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator-> ( ) const
inline

◆ operator<()

template<class Element_type >
template<class Iterator_element_type >
bool mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator< ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator<=()

template<class Element_type >
template<class Iterator_element_type >
bool mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator<= ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator==()

template<class Element_type >
template<class Iterator_element_type >
bool mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator== ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator>()

template<class Element_type >
template<class Iterator_element_type >
bool mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator> ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator>=()

template<class Element_type >
template<class Iterator_element_type >
bool mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator>= ( const Iterator< Iterator_element_type > &  other) const
inline

◆ operator[]()

template<class Element_type >
template<class Iterator_element_type >
Iterator_element_type & mem_root_deque< Element_type >::Iterator< Iterator_element_type >::operator[] ( size_t  idx) const
inline

Friends And Related Function Documentation

◆ mem_root_deque

template<class Element_type >
template<class Iterator_element_type >
friend class mem_root_deque
friend

Member Data Documentation

◆ m_deque

template<class Element_type >
template<class Iterator_element_type >
const mem_root_deque* mem_root_deque< Element_type >::Iterator< Iterator_element_type >::m_deque = nullptr
private

◆ m_generation

template<class Element_type >
template<class Iterator_element_type >
size_t mem_root_deque< Element_type >::Iterator< Iterator_element_type >::m_generation = 0
private

◆ m_physical_idx

template<class Element_type >
template<class Iterator_element_type >
size_t mem_root_deque< Element_type >::Iterator< Iterator_element_type >::m_physical_idx = 0
private

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