Libosmium  2.11.1
Fast and flexible C++ library for working with OpenStreetMap data
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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

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
template<typename TMember>
using osmium::memory::ItemIterator< TMember >::difference_type = std::ptrdiff_t
template<typename TMember>
using osmium::memory::ItemIterator< TMember >::iterator_category = std::forward_iterator_tag
template<typename TMember>
using osmium::memory::ItemIterator< TMember >::pointer = value_type*
template<typename TMember>
using osmium::memory::ItemIterator< TMember >::reference = value_type&
template<typename TMember>
using osmium::memory::ItemIterator< TMember >::value_type = TMember

Constructor & Destructor Documentation

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

Member Function Documentation

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.

template<typename TMember>
void osmium::memory::ItemIterator< TMember >::advance_to_next_item_of_right_type ( )
inlineprivatenoexcept
template<typename TMember>
template<typename T >
ItemIterator<T> osmium::memory::ItemIterator< TMember >::cast ( ) const
inlinenoexcept
template<typename TMember>
data_type osmium::memory::ItemIterator< TMember >::data ( )
inlinenoexcept
template<typename TMember>
const unsigned char* osmium::memory::ItemIterator< TMember >::data ( ) const
inlinenoexcept
template<typename TMember>
osmium::memory::ItemIterator< TMember >::operator bool ( ) const
inlineexplicitnoexcept
template<typename TMember>
bool osmium::memory::ItemIterator< TMember >::operator!= ( const ItemIterator< TMember > &  rhs) const
inlinenoexcept
template<typename TMember>
TMember& osmium::memory::ItemIterator< TMember >::operator* ( ) const
inlinenoexcept
template<typename TMember>
ItemIterator<TMember>& osmium::memory::ItemIterator< TMember >::operator++ ( )
inlinenoexcept
template<typename TMember>
ItemIterator<TMember> osmium::memory::ItemIterator< TMember >::operator++ ( int  )
inlinenoexcept
template<typename TMember>
TMember* osmium::memory::ItemIterator< TMember >::operator-> ( ) const
inlinenoexcept
template<typename TMember>
bool osmium::memory::ItemIterator< TMember >::operator== ( const ItemIterator< TMember > &  rhs) const
inlinenoexcept
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

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

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