1 #ifndef OSMIUM_DIFF_ITERATOR_HPP 2 #define OSMIUM_DIFF_ITERATOR_HPP 39 #include <type_traits> 53 template <
typename TBasicIterator>
66 assert(m_curr != m_end);
68 bool use_curr_for_prev = m_prev->type() != m_curr->type() || m_prev->id() != m_curr->id();
69 bool use_curr_for_next = m_next == m_end || m_next->type() != m_curr->type() || m_next->id() != m_curr->id();
74 *(use_curr_for_next ? m_curr : m_next)
89 m_next(begin == end ? begin : ++begin),
90 m_end(
std::move(end)),
95 m_prev = std::move(m_curr);
98 if (m_next != m_end) {
112 return m_curr == rhs.m_curr && m_end == rhs.m_end;
116 return !(*
this == rhs);
134 template <
typename TBasicIterator>
136 TBasicIterator
end) {
142 #endif // OSMIUM_DIFF_ITERATOR_HPP Definition: diff_object.hpp:66
DiffIterator< TBasicIterator > make_diff_iterator(TBasicIterator begin, TBasicIterator end)
Definition: diff_iterator.hpp:135
const TBasicIterator m_end
Definition: diff_iterator.hpp:61
Definition: reader_iterator.hpp:39
Definition: diff_iterator.hpp:54
Namespace for everything in the Osmium library.
Definition: assembler.hpp:73
osmium::DiffObject m_diff
Definition: diff_iterator.hpp:63
osmium::io::InputIterator< osmium::io::Reader > end(osmium::io::Reader &)
Definition: reader_iterator.hpp:45
bool operator==(const DiffIterator &rhs) const noexcept
Definition: diff_iterator.hpp:111
void set_diff() const noexcept
Definition: diff_iterator.hpp:65
DiffIterator & operator++()
Definition: diff_iterator.hpp:94
std::input_iterator_tag iterator_category
Definition: diff_iterator.hpp:80
TBasicIterator m_prev
Definition: diff_iterator.hpp:57
reference operator*() const noexcept
Definition: diff_iterator.hpp:119
DiffIterator operator++(int)
Definition: diff_iterator.hpp:105
TBasicIterator m_curr
Definition: diff_iterator.hpp:58
pointer operator->() const noexcept
Definition: diff_iterator.hpp:124
TBasicIterator m_next
Definition: diff_iterator.hpp:59
osmium::io::InputIterator< osmium::io::Reader > begin(osmium::io::Reader &reader)
Definition: reader_iterator.hpp:41
std::ptrdiff_t difference_type
Definition: diff_iterator.hpp:82
bool operator!=(const DiffIterator &rhs) const noexcept
Definition: diff_iterator.hpp:115
DiffIterator(TBasicIterator begin, TBasicIterator end)
Definition: diff_iterator.hpp:86