Add missing operator+= and -= on utf8_iterator
Fix operator== and != that were non-const as well.
This commit is contained in:
parent
cbb6e9ea0f
commit
18705a0097
|
@ -63,26 +63,38 @@ public:
|
||||||
|
|
||||||
iterator operator+(DifferenceType count) const noexcept
|
iterator operator+(DifferenceType count) const noexcept
|
||||||
{
|
{
|
||||||
if (count < 0)
|
|
||||||
return operator-(-count);
|
|
||||||
|
|
||||||
iterator res = *this;
|
iterator res = *this;
|
||||||
while (count--)
|
res += count;
|
||||||
++res;
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iterator& operator+=(DifferenceType count) noexcept
|
||||||
|
{
|
||||||
|
if (count < 0)
|
||||||
|
return operator-=(-count);
|
||||||
|
|
||||||
|
while (count--)
|
||||||
|
operator++();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
iterator operator-(DifferenceType count) const noexcept
|
iterator operator-(DifferenceType count) const noexcept
|
||||||
{
|
{
|
||||||
if (count < 0)
|
|
||||||
return operator+(-count);
|
|
||||||
|
|
||||||
iterator res = *this;
|
iterator res = *this;
|
||||||
while (count--)
|
res -= count;
|
||||||
--res;
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
iterator& operator-=(DifferenceType count) noexcept
|
||||||
|
{
|
||||||
|
if (count < 0)
|
||||||
|
return operator+=(-count);
|
||||||
|
|
||||||
|
while (count--)
|
||||||
|
operator--();
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
bool operator==(const iterator& other) const noexcept { return m_it == other.m_it; }
|
bool operator==(const iterator& other) const noexcept { return m_it == other.m_it; }
|
||||||
bool operator!=(const iterator& other) const noexcept { return m_it != other.m_it; }
|
bool operator!=(const iterator& other) const noexcept { return m_it != other.m_it; }
|
||||||
|
|
||||||
|
@ -92,8 +104,8 @@ public:
|
||||||
bool operator> (const iterator& other) const noexcept { return m_it > other.m_it; }
|
bool operator> (const iterator& other) const noexcept { return m_it > other.m_it; }
|
||||||
bool operator>= (const iterator& other) const noexcept { return m_it >= other.m_it; }
|
bool operator>= (const iterator& other) const noexcept { return m_it >= other.m_it; }
|
||||||
|
|
||||||
bool operator==(const BaseIt& other) noexcept { return m_it == other; }
|
bool operator==(const BaseIt& other) const noexcept { return m_it == other; }
|
||||||
bool operator!=(const BaseIt& other) noexcept { return m_it != other; }
|
bool operator!=(const BaseIt& other) const noexcept { return m_it != other; }
|
||||||
|
|
||||||
bool operator< (const BaseIt& other) const noexcept { return m_it < other; }
|
bool operator< (const BaseIt& other) const noexcept { return m_it < other; }
|
||||||
bool operator<= (const BaseIt& other) const noexcept { return m_it <= other; }
|
bool operator<= (const BaseIt& other) const noexcept { return m_it <= other; }
|
||||||
|
|
Loading…
Reference in New Issue
Block a user