diff --git a/src/blackmisc/iterator.h b/src/blackmisc/iterator.h index af845b01e..27991a46e 100644 --- a/src/blackmisc/iterator.h +++ b/src/blackmisc/iterator.h @@ -191,6 +191,12 @@ namespace BlackMisc bool operator >=(const ConditionalIterator &other) const { return m_iterator >= other.m_iterator; } //! @} + //! \private + void checkEnd(const ConditionalIterator &other) // debugging + { + Q_ASSERT(m_end == other.m_end && m_end == other.m_iterator); + } + private: I m_iterator; I m_end; diff --git a/src/blackmisc/range.h b/src/blackmisc/range.h index dc075347e..fc797f8f3 100644 --- a/src/blackmisc/range.h +++ b/src/blackmisc/range.h @@ -124,7 +124,7 @@ namespace BlackMisc //! @} //! Constructor. - CRange(I begin, I end) : m_begin(begin), m_end(end) {} + CRange(I begin, I end) : m_begin(begin), m_end(end) { check(begin, end); } //! Begin and end iterators. //! @{ @@ -168,6 +168,12 @@ namespace BlackMisc private: I m_begin; I m_end; + + void check(...) {}; + template void check(Iterators::ConditionalIterator begin, Iterators::ConditionalIterator end) + { + begin.checkEnd(end); + } }; /*!