1 #ifndef OSMIUM_DIFF_ITERATOR_HPP 2 #define OSMIUM_DIFF_ITERATOR_HPP 41 #include <type_traits> 56 template <
typename TBasicIterator>
69 assert(m_curr != m_end);
71 const bool use_curr_for_prev = m_prev->type() != m_curr->type() || m_prev->id() != m_curr->id();
72 const bool use_curr_for_next = m_next == m_end || m_next->type() != m_curr->type() || m_next->id() != m_curr->id();
77 *(use_curr_for_next ? m_curr : m_next)
92 m_next(begin == end ? begin : ++begin),
93 m_end(
std::move(end)),
98 m_prev = std::move(m_curr);
101 if (m_next != m_end) {
115 return m_curr == rhs.m_curr && m_end == rhs.m_end;
119 return !(*
this == rhs);
137 template <
typename TBasicIterator>
139 TBasicIterator
end) {
145 #endif // OSMIUM_DIFF_ITERATOR_HPP Definition: diff_object.hpp:66
DiffIterator< TBasicIterator > make_diff_iterator(TBasicIterator begin, TBasicIterator end)
Definition: diff_iterator.hpp:138
InputIterator< Reader > end(Reader &)
Definition: reader_iterator.hpp:47
const TBasicIterator m_end
Definition: diff_iterator.hpp:64
Definition: location.hpp:551
Definition: diff_iterator.hpp:57
InputIterator< Reader > begin(Reader &reader)
Definition: reader_iterator.hpp:43
Namespace for everything in the Osmium library.
Definition: assembler.hpp:53
osmium::DiffObject m_diff
Definition: diff_iterator.hpp:66
bool operator==(const DiffIterator &rhs) const noexcept
Definition: diff_iterator.hpp:114
void set_diff() const noexcept
Definition: diff_iterator.hpp:68
DiffIterator & operator++()
Definition: diff_iterator.hpp:97
std::input_iterator_tag iterator_category
Definition: diff_iterator.hpp:83
TBasicIterator m_prev
Definition: diff_iterator.hpp:60
reference operator*() const noexcept
Definition: diff_iterator.hpp:122
DiffIterator operator++(int)
Definition: diff_iterator.hpp:108
TBasicIterator m_curr
Definition: diff_iterator.hpp:61
pointer operator->() const noexcept
Definition: diff_iterator.hpp:127
TBasicIterator m_next
Definition: diff_iterator.hpp:62
std::ptrdiff_t difference_type
Definition: diff_iterator.hpp:85
bool operator!=(const DiffIterator &rhs) const noexcept
Definition: diff_iterator.hpp:118
DiffIterator(TBasicIterator begin, TBasicIterator end)
Definition: diff_iterator.hpp:89