Libosmium
2.15.5
Fast and flexible C++ library for working with OpenStreetMap data
|
Go to the documentation of this file. 1 #ifndef OSMIUM_MEMORY_ITEM_ITERATOR_HPP
2 #define OSMIUM_MEMORY_ITEM_ITERATOR_HPP
43 #include <type_traits>
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>
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 {
246 #endif // OSMIUM_MEMORY_ITEM_ITERATOR_HPP
data_type data() noexcept
Definition: item_iterator.hpp:135
bool operator==(const ItemIterator< TMember > &rhs) const noexcept
Definition: item_iterator.hpp:127
bool operator!=(const ItemIterator< TMember > &rhs) const noexcept
Definition: item_iterator.hpp:131
ItemIterator< TMember > & operator++() noexcept
Definition: item_iterator.hpp:101
ItemIterator() noexcept
Definition: item_iterator.hpp:85
ItemIterator< TMember > operator++(int) noexcept
Definition: item_iterator.hpp:121
const_iterator cbegin() const noexcept
Definition: item_iterator.hpp:203
data_type m_begin
Definition: item_iterator.hpp:182
data_type m_end
Definition: item_iterator.hpp:68
std::basic_ostream< TChar, TTraits > & operator<<(std::basic_ostream< TChar, TTraits > &out, const CollectionIterator< TMember > &iter)
Definition: collection.hpp:111
const_iterator end() const noexcept
Definition: item_iterator.hpp:215
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
const unsigned char * data() const noexcept
Definition: item_iterator.hpp:140
ItemIterator< T > cast() const noexcept
Definition: item_iterator.hpp:97
TMember * operator->() const noexcept
Definition: item_iterator.hpp:151
Definition: item_iterator.hpp:59
typename std::conditional< std::is_const< T >::value, const unsigned char *, unsigned char * >::type data_type
Definition: item_iterator.hpp:180
std::size_t size() const noexcept
Definition: item_iterator.hpp:224
iterator begin() noexcept
Definition: item_iterator.hpp:195
bool empty() const noexcept
Definition: item_iterator.hpp:236
void advance_to_next_item_of_right_type() noexcept
Definition: item_iterator.hpp:70
ItemIterator(data_type data, data_type end) noexcept
Definition: item_iterator.hpp:90
double distance(const osmium::geom::Coordinates &c1, const osmium::geom::Coordinates &c2) noexcept
Definition: haversine.hpp:66
TMember & operator*() const noexcept
Definition: item_iterator.hpp:145
data_type m_end
Definition: item_iterator.hpp:183
iterator end() noexcept
Definition: item_iterator.hpp:199
ItemIterator< TMember > & advance_once() noexcept
Definition: item_iterator.hpp:114
data_type m_data
Definition: item_iterator.hpp:67
const_iterator begin() const noexcept
Definition: item_iterator.hpp:211
ItemIteratorRange(data_type first, data_type last) noexcept
Definition: item_iterator.hpp:190
void print(std::basic_ostream< TChar, TTraits > &out) const
Definition: item_iterator.hpp:162
InputIterator< Reader > end(Reader &)
Definition: reader_iterator.hpp:47
std::ptrdiff_t difference_type
Definition: item_iterator.hpp:81
typename std::conditional< std::is_const< osmium::memory::Item >::value, const unsigned char *, unsigned char * >::type data_type
Definition: item_iterator.hpp:65
type
Definition: entity_bits.hpp:63
item_type
Definition: item_type.hpp:43
std::forward_iterator_tag iterator_category
Definition: item_iterator.hpp:79
Definition: item_iterator.hpp:175
const_iterator cend() const noexcept
Definition: item_iterator.hpp:207