From af3f74de8cada6cc9fe0962164f4aca8393b7774 Mon Sep 17 00:00:00 2001 From: Jay Berkenbilt Date: Sat, 5 Feb 2022 09:58:30 -0500 Subject: Stop using std::iterator (fixes #618) Create the typedefs directly in iterators rather than deriving from the deprecated std::iterator class. --- include/qpdf/QPDFNameTreeObjectHelper.hh | 11 ++++++++--- include/qpdf/QPDFNumberTreeObjectHelper.hh | 11 ++++++++--- include/qpdf/QPDFObjectHandle.hh | 22 ++++++++++++++++------ 3 files changed, 32 insertions(+), 12 deletions(-) (limited to 'include') diff --git a/include/qpdf/QPDFNameTreeObjectHelper.hh b/include/qpdf/QPDFNameTreeObjectHelper.hh index ea395c6a..baa6e5e9 100644 --- a/include/qpdf/QPDFNameTreeObjectHelper.hh +++ b/include/qpdf/QPDFNameTreeObjectHelper.hh @@ -77,12 +77,17 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper QPDF_DLL bool findObject(std::string const& utf8, QPDFObjectHandle& oh); - class iterator: public std::iterator< - std::bidirectional_iterator_tag, - std::pair> + class iterator { friend class QPDFNameTreeObjectHelper; public: + typedef std::pair T; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = T; + using difference_type = long; + using pointer = T*; + using reference = T&; + virtual ~iterator() = default; QPDF_DLL bool valid() const; diff --git a/include/qpdf/QPDFNumberTreeObjectHelper.hh b/include/qpdf/QPDFNumberTreeObjectHelper.hh index 4a7bfec0..cfe20b72 100644 --- a/include/qpdf/QPDFNumberTreeObjectHelper.hh +++ b/include/qpdf/QPDFNumberTreeObjectHelper.hh @@ -96,12 +96,17 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper bool findObjectAtOrBelow(numtree_number idx, QPDFObjectHandle& oh, numtree_number& offset); - class iterator: public std::iterator< - std::bidirectional_iterator_tag, - std::pair> + class iterator { friend class QPDFNumberTreeObjectHelper; public: + typedef std::pair T; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = T; + using difference_type = long; + using pointer = T*; + using reference = T&; + virtual ~iterator() = default; QPDF_DLL bool valid() const; diff --git a/include/qpdf/QPDFObjectHandle.hh b/include/qpdf/QPDFObjectHandle.hh index 03d7cb0d..262a84b8 100644 --- a/include/qpdf/QPDFObjectHandle.hh +++ b/include/qpdf/QPDFObjectHandle.hh @@ -1479,12 +1479,17 @@ class QPDFObjectHandle::QPDFDictItems QPDF_DLL QPDFDictItems(QPDFObjectHandle const& oh); - class iterator: public std::iterator< - std::bidirectional_iterator_tag, - std::pair> + class iterator { friend class QPDFDictItems; public: + typedef std::pair T; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = T; + using difference_type = long; + using pointer = T*; + using reference = T&; + QPDF_DLL virtual ~iterator() = default; QPDF_DLL @@ -1569,12 +1574,17 @@ class QPDFObjectHandle::QPDFArrayItems QPDF_DLL QPDFArrayItems(QPDFObjectHandle const& oh); - class iterator: public std::iterator< - std::bidirectional_iterator_tag, - QPDFObjectHandle> + class iterator { friend class QPDFArrayItems; public: + typedef QPDFObjectHandle T; + using iterator_category = std::bidirectional_iterator_tag; + using value_type = T; + using difference_type = long; + using pointer = T*; + using reference = T&; + QPDF_DLL virtual ~iterator() = default; QPDF_DLL -- cgit v1.2.3-70-g09d2