aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/codepoint_iterator.cc5
-rw-r--r--src/codepoint_iterator.h2
2 files changed, 7 insertions, 0 deletions
diff --git a/src/codepoint_iterator.cc b/src/codepoint_iterator.cc
index b2f6d81..59cb23b 100644
--- a/src/codepoint_iterator.cc
+++ b/src/codepoint_iterator.cc
@@ -34,6 +34,11 @@ bool CodepointIterator::operator!=(
return this->iterator_ != src;
}
+std::ptrdiff_t CodepointIterator::operator-(
+ const std::string::const_iterator& src) const {
+ return this->iterator_ - src;
+}
+
char32_t CodepointIterator::operator*() {
std::uint8_t currByte = *(this->iterator_);
char32_t codePoint = 0;
diff --git a/src/codepoint_iterator.h b/src/codepoint_iterator.h
index b505587..d1806e5 100644
--- a/src/codepoint_iterator.h
+++ b/src/codepoint_iterator.h
@@ -22,6 +22,8 @@ class CodepointIterator : public std::iterator<std::bidirectional_iterator_tag,
bool operator!=(const CodepointIterator&) const;
bool operator!=(const std::string::const_iterator&) const;
+ std::ptrdiff_t operator-(const std::string::const_iterator&) const;
+
char32_t operator*();
CodepointIterator& operator++();