Libosmium  2.20.0
Fast and flexible C++ library for working with OpenStreetMap data
Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
osmium::memory::ItemIterator< TMember > Class Template Reference

#include <item_iterator.hpp>

Public Types

using iterator_category = std::forward_iterator_tag
 
using value_type = TMember
 
using difference_type = std::ptrdiff_t
 
using pointer = value_type *
 
using reference = value_type &
 

Public Member Functions

 ItemIterator () noexcept
 
 ItemIterator (data_type data, data_type end) noexcept
 
template<typename T >
ItemIterator< T > cast () const noexcept
 
ItemIterator< TMember > & operator++ () noexcept
 
ItemIterator< TMember > & advance_once () noexcept
 
ItemIterator< TMember > operator++ (int) noexcept
 
bool operator== (const ItemIterator< TMember > &rhs) const noexcept
 
bool operator!= (const ItemIterator< TMember > &rhs) const noexcept
 
data_type data () noexcept
 
const unsigned char * data () const noexcept
 
TMember & operator* () const noexcept
 
TMember * operator-> () const noexcept
 
 operator bool () const noexcept
 
template<typename TChar , typename TTraits >
void print (std::basic_ostream< TChar, TTraits > &out) const
 

Private Types

using data_type = typename std::conditional< std::is_const< TMember >::value, const unsigned char *, unsigned char * >::type
 

Private Member Functions

void advance_to_next_item_of_right_type () noexcept
 

Private Attributes

data_type m_data
 
data_type m_end
 

Member Typedef Documentation

◆ data_type

template<typename TMember >
using osmium::memory::ItemIterator< TMember >::data_type = typename std::conditional<std::is_const<TMember>::value, const unsigned char*, unsigned char*>::type
private

◆ difference_type

template<typename TMember >
using osmium::memory::ItemIterator< TMember >::difference_type = std::ptrdiff_t

◆ iterator_category

template<typename TMember >
using osmium::memory::ItemIterator< TMember >::iterator_category = std::forward_iterator_tag

◆ pointer

template<typename TMember >
using osmium::memory::ItemIterator< TMember >::pointer = value_type*

◆ reference

template<typename TMember >
using osmium::memory::ItemIterator< TMember >::reference = value_type&

◆ value_type

template<typename TMember >
using osmium::memory::ItemIterator< TMember >::value_type = TMember

Constructor & Destructor Documentation

◆ ItemIterator() [1/2]

template<typename TMember >
osmium::memory::ItemIterator< TMember >::ItemIterator ( )
inlinenoexcept

◆ ItemIterator() [2/2]

template<typename TMember >
osmium::memory::ItemIterator< TMember >::ItemIterator ( data_type  data,
data_type  end 
)
inlinenoexcept

Member Function Documentation

◆ advance_once()

template<typename TMember >
ItemIterator< TMember > & osmium::memory::ItemIterator< TMember >::advance_once ( )
inlinenoexcept

Like operator++() but will NOT skip items of unwanted types. Do not use this unless you know what you are doing.

◆ advance_to_next_item_of_right_type()

template<typename TMember >
void osmium::memory::ItemIterator< TMember >::advance_to_next_item_of_right_type ( )
inlineprivatenoexcept

◆ cast()

template<typename TMember >
template<typename T >
ItemIterator< T > osmium::memory::ItemIterator< TMember >::cast ( ) const
inlinenoexcept

◆ data() [1/2]

template<typename TMember >
const unsigned char * osmium::memory::ItemIterator< TMember >::data ( ) const
inlinenoexcept

◆ data() [2/2]

template<typename TMember >
data_type osmium::memory::ItemIterator< TMember >::data ( )
inlinenoexcept

◆ operator bool()

template<typename TMember >
osmium::memory::ItemIterator< TMember >::operator bool ( ) const
inlineexplicitnoexcept

◆ operator!=()

template<typename TMember >
bool osmium::memory::ItemIterator< TMember >::operator!= ( const ItemIterator< TMember > &  rhs) const
inlinenoexcept

◆ operator*()

template<typename TMember >
TMember & osmium::memory::ItemIterator< TMember >::operator* ( ) const
inlinenoexcept

◆ operator++() [1/2]

template<typename TMember >
ItemIterator< TMember > & osmium::memory::ItemIterator< TMember >::operator++ ( )
inlinenoexcept

◆ operator++() [2/2]

template<typename TMember >
ItemIterator< TMember > osmium::memory::ItemIterator< TMember >::operator++ ( int  )
inlinenoexcept

◆ operator->()

template<typename TMember >
TMember * osmium::memory::ItemIterator< TMember >::operator-> ( ) const
inlinenoexcept

◆ operator==()

template<typename TMember >
bool osmium::memory::ItemIterator< TMember >::operator== ( const ItemIterator< TMember > &  rhs) const
inlinenoexcept

◆ print()

template<typename TMember >
template<typename TChar , typename TTraits >
void osmium::memory::ItemIterator< TMember >::print ( std::basic_ostream< TChar, TTraits > &  out) const
inline

Member Data Documentation

◆ m_data

template<typename TMember >
data_type osmium::memory::ItemIterator< TMember >::m_data
private

◆ m_end

template<typename TMember >
data_type osmium::memory::ItemIterator< TMember >::m_end
private

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