diff --git a/source/utf8/checked.h b/source/utf8/checked.h index 0567b50..648636e 100644 --- a/source/utf8/checked.h +++ b/source/utf8/checked.h @@ -263,11 +263,16 @@ namespace utf8 // The iterator class template - class iterator : public std::iterator { + class iterator { octet_iterator it; octet_iterator range_start; octet_iterator range_end; public: + typedef uint32_t value_type; + typedef uint32_t* pointer; + typedef uint32_t& reference; + typedef std::ptrdiff_t difference_type; + typedef std::bidirectional_iterator_tag iterator_category; iterator () {} explicit iterator (const octet_iterator& octet_it, const octet_iterator& rangestart, diff --git a/source/utf8/unchecked.h b/source/utf8/unchecked.h index def0009..0e1b51c 100644 --- a/source/utf8/unchecked.h +++ b/source/utf8/unchecked.h @@ -217,9 +217,14 @@ namespace utf8 // The iterator class template - class iterator : public std::iterator { + class iterator { octet_iterator it; public: + typedef uint32_t value_type; + typedef uint32_t* pointer; + typedef uint32_t& reference; + typedef std::ptrdiff_t difference_type; + typedef std::bidirectional_iterator_tag iterator_category; iterator () {} explicit iterator (const octet_iterator& octet_it): it(octet_it) {} // the default "big three" are OK