From 2bdf4c7911c6d3677114c19ea254cc6e86ae19e6 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Wed, 15 Aug 2018 12:59:28 -0700 Subject: [PATCH] use pointers instead of std::array<>::iterator (#100) some STL implementations assert when iterators are out of range (even without dereferencing). --- libs/utils/include/utils/RangeSet.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/libs/utils/include/utils/RangeSet.h b/libs/utils/include/utils/RangeSet.h index 5d0ff093e1..430283bfd8 100644 --- a/libs/utils/include/utils/RangeSet.h +++ b/libs/utils/include/utils/RangeSet.h @@ -60,9 +60,9 @@ private: class vector { std::array mElements; uint32_t mSize = 0; - using iterator = typename std::array::iterator; - using const_iterator = typename std::array::const_iterator; using value_type = typename std::array::value_type; + using iterator = value_type*; + using const_iterator = value_type const*; public: bool empty() const noexcept { return size() == 0; } @@ -70,11 +70,11 @@ private: size_t capacity() const noexcept { return CAPACITY; } value_type *data() { return mElements.data(); } value_type const *data() const { return mElements.data(); } - iterator begin() { return mElements.begin(); } + iterator begin() { return mElements.data(); } iterator end() { return begin() + mSize; } - const_iterator begin() const { return mElements.begin(); } + const_iterator begin() const { return mElements.data(); } const_iterator end() const { return begin() + mSize; } - const_iterator cbegin() const { return mElements.cbegin(); } + const_iterator cbegin() const { return mElements.data(); } const_iterator cend() const { return cbegin() + mSize; } value_type const& operator[](size_t i) const noexcept { return mElements[i]; } value_type& operator[](size_t i) noexcept { return mElements[i]; }