From: Francesco Chemolli Date: Wed, 8 Jun 2022 12:12:31 +0000 (+0000) Subject: Remove use of deprecated std::iterator (#1069) X-Git-Tag: SQUID_6_0_1~172 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c3f0885dd9632e206fbcc78348b567d360ee1ee0;p=thirdparty%2Fsquid.git Remove use of deprecated std::iterator (#1069) c++17 deprecates std::iterator. Explicitly declare traits in our iterator classes instead of using std::iterator --- diff --git a/src/base/EnumIterator.h b/src/base/EnumIterator.h index 5d88100c45..96cb826f05 100644 --- a/src/base/EnumIterator.h +++ b/src/base/EnumIterator.h @@ -20,7 +20,7 @@ * \see EnumIterator, ReverseEnumIterator */ template -class EnumIteratorBase : public std::iterator +class EnumIteratorBase { protected: #if HAVE_STD_UNDERLYING_TYPE @@ -30,6 +30,12 @@ protected: #endif public: + using iterator_category = std::bidirectional_iterator_tag; + using value_type = EnumType; + using difference_type = std::ptrdiff_t; + using pointer = EnumType *; + using reference = EnumType &; + explicit EnumIteratorBase(EnumType e) : current(static_cast(e)) {} bool operator==(const EnumIteratorBase &i) const { diff --git a/src/sbuf/SBuf.h b/src/sbuf/SBuf.h index 7373120b3d..533bba96b6 100644 --- a/src/sbuf/SBuf.h +++ b/src/sbuf/SBuf.h @@ -45,9 +45,16 @@ class CharacterSet; * Please note that any operation on the underlying SBuf may invalidate * all iterators over it, resulting in undefined behavior by them. */ -class SBufIterator : public std::iterator +class SBufIterator { public: + // iterator traits + using iterator_category = std::input_iterator_tag; + using value_type = char; + using difference_type = std::ptrdiff_t; + using pointer = char*; + using reference = char&; + friend class SBuf; typedef MemBlob::size_type size_type; bool operator==(const SBufIterator &s) const;