Commit af3f74de8cada6cc9fe0962164f4aca8393b7774
1 parent
2e476e18
Stop using std::iterator (fixes #618)
Create the typedefs directly in iterators rather than deriving from the deprecated std::iterator class.
Showing
4 changed files
with
40 additions
and
15 deletions
include/qpdf/QPDFNameTreeObjectHelper.hh
| ... | ... | @@ -77,12 +77,17 @@ class QPDFNameTreeObjectHelper: public QPDFObjectHelper |
| 77 | 77 | QPDF_DLL |
| 78 | 78 | bool findObject(std::string const& utf8, QPDFObjectHandle& oh); |
| 79 | 79 | |
| 80 | - class iterator: public std::iterator< | |
| 81 | - std::bidirectional_iterator_tag, | |
| 82 | - std::pair<std::string, QPDFObjectHandle>> | |
| 80 | + class iterator | |
| 83 | 81 | { |
| 84 | 82 | friend class QPDFNameTreeObjectHelper; |
| 85 | 83 | public: |
| 84 | + typedef std::pair<std::string, QPDFObjectHandle> T; | |
| 85 | + using iterator_category = std::bidirectional_iterator_tag; | |
| 86 | + using value_type = T; | |
| 87 | + using difference_type = long; | |
| 88 | + using pointer = T*; | |
| 89 | + using reference = T&; | |
| 90 | + | |
| 86 | 91 | virtual ~iterator() = default; |
| 87 | 92 | QPDF_DLL |
| 88 | 93 | bool valid() const; | ... | ... |
include/qpdf/QPDFNumberTreeObjectHelper.hh
| ... | ... | @@ -96,12 +96,17 @@ class QPDFNumberTreeObjectHelper: public QPDFObjectHelper |
| 96 | 96 | bool findObjectAtOrBelow(numtree_number idx, QPDFObjectHandle& oh, |
| 97 | 97 | numtree_number& offset); |
| 98 | 98 | |
| 99 | - class iterator: public std::iterator< | |
| 100 | - std::bidirectional_iterator_tag, | |
| 101 | - std::pair<numtree_number, QPDFObjectHandle>> | |
| 99 | + class iterator | |
| 102 | 100 | { |
| 103 | 101 | friend class QPDFNumberTreeObjectHelper; |
| 104 | 102 | public: |
| 103 | + typedef std::pair<numtree_number, QPDFObjectHandle> T; | |
| 104 | + using iterator_category = std::bidirectional_iterator_tag; | |
| 105 | + using value_type = T; | |
| 106 | + using difference_type = long; | |
| 107 | + using pointer = T*; | |
| 108 | + using reference = T&; | |
| 109 | + | |
| 105 | 110 | virtual ~iterator() = default; |
| 106 | 111 | QPDF_DLL |
| 107 | 112 | bool valid() const; | ... | ... |
include/qpdf/QPDFObjectHandle.hh
| ... | ... | @@ -1479,12 +1479,17 @@ class QPDFObjectHandle::QPDFDictItems |
| 1479 | 1479 | QPDF_DLL |
| 1480 | 1480 | QPDFDictItems(QPDFObjectHandle const& oh); |
| 1481 | 1481 | |
| 1482 | - class iterator: public std::iterator< | |
| 1483 | - std::bidirectional_iterator_tag, | |
| 1484 | - std::pair<std::string, QPDFObjectHandle>> | |
| 1482 | + class iterator | |
| 1485 | 1483 | { |
| 1486 | 1484 | friend class QPDFDictItems; |
| 1487 | 1485 | public: |
| 1486 | + typedef std::pair<std::string, QPDFObjectHandle> T; | |
| 1487 | + using iterator_category = std::bidirectional_iterator_tag; | |
| 1488 | + using value_type = T; | |
| 1489 | + using difference_type = long; | |
| 1490 | + using pointer = T*; | |
| 1491 | + using reference = T&; | |
| 1492 | + | |
| 1488 | 1493 | QPDF_DLL |
| 1489 | 1494 | virtual ~iterator() = default; |
| 1490 | 1495 | QPDF_DLL |
| ... | ... | @@ -1569,12 +1574,17 @@ class QPDFObjectHandle::QPDFArrayItems |
| 1569 | 1574 | QPDF_DLL |
| 1570 | 1575 | QPDFArrayItems(QPDFObjectHandle const& oh); |
| 1571 | 1576 | |
| 1572 | - class iterator: public std::iterator< | |
| 1573 | - std::bidirectional_iterator_tag, | |
| 1574 | - QPDFObjectHandle> | |
| 1577 | + class iterator | |
| 1575 | 1578 | { |
| 1576 | 1579 | friend class QPDFArrayItems; |
| 1577 | 1580 | public: |
| 1581 | + typedef QPDFObjectHandle T; | |
| 1582 | + using iterator_category = std::bidirectional_iterator_tag; | |
| 1583 | + using value_type = T; | |
| 1584 | + using difference_type = long; | |
| 1585 | + using pointer = T*; | |
| 1586 | + using reference = T&; | |
| 1587 | + | |
| 1578 | 1588 | QPDF_DLL |
| 1579 | 1589 | virtual ~iterator() = default; |
| 1580 | 1590 | QPDF_DLL | ... | ... |
libqpdf/qpdf/NNTree.hh
| ... | ... | @@ -17,12 +17,17 @@ class NNTreeDetails |
| 17 | 17 | }; |
| 18 | 18 | |
| 19 | 19 | class NNTreeImpl; |
| 20 | -class NNTreeIterator: public std::iterator< | |
| 21 | - std::bidirectional_iterator_tag, | |
| 22 | - std::pair<QPDFObjectHandle, QPDFObjectHandle>> | |
| 20 | +class NNTreeIterator | |
| 23 | 21 | { |
| 24 | 22 | friend class NNTreeImpl; |
| 25 | 23 | public: |
| 24 | + typedef std::pair<QPDFObjectHandle, QPDFObjectHandle> T; | |
| 25 | + using iterator_category = std::bidirectional_iterator_tag; | |
| 26 | + using value_type = T; | |
| 27 | + using difference_type = long; | |
| 28 | + using pointer = T*; | |
| 29 | + using reference = T&; | |
| 30 | + | |
| 26 | 31 | virtual ~NNTreeIterator() = default; |
| 27 | 32 | bool valid() const; |
| 28 | 33 | NNTreeIterator& operator++(); | ... | ... |