Skip to content

Commit 0e52f85

Browse files
authored
Merge pull request #1577 from Idclip/iterator_deprecated_cxx17
Removed inheritance from std::iterator, deprecated from C++17
2 parents 2188e28 + 569f7f6 commit 0e52f85

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

openvdb/openvdb/util/PagedArray.h

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -584,12 +584,15 @@ ValueBuffer
584584
// Const std-compliant iterator
585585
// Public member-class of PagedArray
586586
template <typename ValueT, size_t Log2PageSize>
587-
class PagedArray<ValueT, Log2PageSize>::
588-
ConstIterator : public std::iterator<std::random_access_iterator_tag, ValueT>
587+
class PagedArray<ValueT, Log2PageSize>::ConstIterator
589588
{
590589
public:
591-
using BaseT = std::iterator<std::random_access_iterator_tag, ValueT>;
592-
using difference_type = typename BaseT::difference_type;
590+
using iterator_category = std::random_access_iterator_tag;
591+
using value_type = ValueT;
592+
using difference_type = std::ptrdiff_t;
593+
using pointer = ValueT*;
594+
using reference = ValueT&;
595+
593596
// constructors and assignment
594597
ConstIterator() : mPos(0), mParent(nullptr) {}
595598
ConstIterator(const PagedArray& parent, size_t pos=0) : mPos(pos), mParent(&parent) {}
@@ -635,12 +638,15 @@ ConstIterator : public std::iterator<std::random_access_iterator_tag, ValueT>
635638
// Non-const std-compliant iterator
636639
// Public member-class of PagedArray
637640
template <typename ValueT, size_t Log2PageSize>
638-
class PagedArray<ValueT, Log2PageSize>::
639-
Iterator : public std::iterator<std::random_access_iterator_tag, ValueT>
641+
class PagedArray<ValueT, Log2PageSize>::Iterator
640642
{
641643
public:
642-
using BaseT = std::iterator<std::random_access_iterator_tag, ValueT>;
643-
using difference_type = typename BaseT::difference_type;
644+
using iterator_category = std::random_access_iterator_tag;
645+
using value_type = ValueT;
646+
using difference_type = std::ptrdiff_t;
647+
using pointer = ValueT*;
648+
using reference = ValueT&;
649+
644650
// constructors and assignment
645651
Iterator() : mPos(0), mParent(nullptr) {}
646652
Iterator(PagedArray& parent, size_t pos=0) : mPos(pos), mParent(&parent) {}
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
OpenVDB
2+
- API Changes
3+
- PagedArray iterators no longer derives from std::iterator (but remains standard compliant)

0 commit comments

Comments
 (0)