1#ifndef OSMIUM_MEMORY_ITEM_ITERATOR_HPP
2#define OSMIUM_MEMORY_ITEM_ITERATOR_HPP
53 return T::is_compatible_to(t);
58 template <
typename TMember>
65 using data_type =
typename std::conditional<std::is_const<TMember>::value,
const unsigned char*,
unsigned char*>
::type;
132 return !(*
this == rhs);
140 const unsigned char*
data() const noexcept {
148 return *
reinterpret_cast<TMember*
>(
m_data);
154 return reinterpret_cast<TMember*
>(
m_data);
157 explicit operator bool() const noexcept {
161 template <
typename TChar,
typename TTraits>
162 void print(std::basic_ostream<TChar, TTraits>& out)
const {
163 out << static_cast<const void*>(
m_data);
168 template <
typename TChar,
typename TTraits,
typename TMember>
169 inline std::basic_ostream<TChar, TTraits>&
operator<<(std::basic_ostream<TChar, TTraits>& out,
const ItemIterator<TMember>& iter) {
174 template <
typename T>
180 using data_type =
typename std::conditional<std::is_const<T>::value,
const unsigned char*,
unsigned char*>
::type;
224 std::size_t
size() const noexcept {
Definition: item_iterator.hpp:175
std::size_t size() const noexcept
Definition: item_iterator.hpp:224
bool empty() const noexcept
Definition: item_iterator.hpp:236
const_iterator end() const noexcept
Definition: item_iterator.hpp:215
iterator end() noexcept
Definition: item_iterator.hpp:199
const_iterator begin() const noexcept
Definition: item_iterator.hpp:211
const_iterator cbegin() const noexcept
Definition: item_iterator.hpp:203
data_type m_end
Definition: item_iterator.hpp:183
data_type m_begin
Definition: item_iterator.hpp:182
ItemIteratorRange(data_type first, data_type last) noexcept
Definition: item_iterator.hpp:190
iterator begin() noexcept
Definition: item_iterator.hpp:195
typename std::conditional< std::is_const< T >::value, const unsigned char *, unsigned char * >::type data_type
Definition: item_iterator.hpp:180
const_iterator cend() const noexcept
Definition: item_iterator.hpp:207
Definition: item_iterator.hpp:59
std::ptrdiff_t difference_type
Definition: item_iterator.hpp:81
const unsigned char * data() const noexcept
Definition: item_iterator.hpp:140
ItemIterator() noexcept
Definition: item_iterator.hpp:85
bool operator==(const ItemIterator< TMember > &rhs) const noexcept
Definition: item_iterator.hpp:127
data_type m_end
Definition: item_iterator.hpp:68
ItemIterator(data_type data, data_type end) noexcept
Definition: item_iterator.hpp:90
TMember & operator*() const noexcept
Definition: item_iterator.hpp:145
ItemIterator< TMember > operator++(int) noexcept
Definition: item_iterator.hpp:121
bool operator!=(const ItemIterator< TMember > &rhs) const noexcept
Definition: item_iterator.hpp:131
TMember * operator->() const noexcept
Definition: item_iterator.hpp:151
ItemIterator< T > cast() const noexcept
Definition: item_iterator.hpp:97
value_type & reference
Definition: item_iterator.hpp:83
ItemIterator< TMember > & operator++() noexcept
Definition: item_iterator.hpp:101
TMember value_type
Definition: item_iterator.hpp:80
void print(std::basic_ostream< TChar, TTraits > &out) const
Definition: item_iterator.hpp:162
typename std::conditional< std::is_const< TMember >::value, const unsigned char *, unsigned char * >::type data_type
Definition: item_iterator.hpp:65
data_type m_data
Definition: item_iterator.hpp:67
ItemIterator< TMember > & advance_once() noexcept
Definition: item_iterator.hpp:114
value_type * pointer
Definition: item_iterator.hpp:82
void advance_to_next_item_of_right_type() noexcept
Definition: item_iterator.hpp:70
std::forward_iterator_tag iterator_category
Definition: item_iterator.hpp:79
data_type data() noexcept
Definition: item_iterator.hpp:135
double distance(const osmium::geom::Coordinates &c1, const osmium::geom::Coordinates &c2) noexcept
Definition: haversine.hpp:66
InputIterator< Reader > end(Reader &)
Definition: reader_iterator.hpp:47
std::basic_ostream< TChar, TTraits > & operator<<(std::basic_ostream< TChar, TTraits > &out, const CollectionIterator< TMember > &iter)
Definition: collection.hpp:111
type
Definition: entity_bits.hpp:63
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
item_type
Definition: item_type.hpp:45