summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Vladimir Marko <vmarko@google.com> 2023-11-06 13:53:03 +0100
committer VladimĂ­r Marko <vmarko@google.com> 2023-11-06 17:29:51 +0000
commit67b53d01d0b66b4d4e07bf34af708e457ac1d5b1 (patch)
tree6725294f99731c09ce4d27736f34356e0d0e27b0
parent5910ce7b8ea8a817bcddcb6b23bf4c27925a29fe (diff)
Clean up iterator typedefs.
This is a follow-up to https://android-review.googlesource.com/2736679 , https://android-review.googlesource.com/2746156 . Test: m Bug: 175635923 Change-Id: Ia80fbea3b0570c6127fc0158cd43060b97a21ee7
-rw-r--r--libartbase/base/bit_vector.h2
-rw-r--r--libartbase/base/stl_util.h10
-rw-r--r--libartbase/base/transform_iterator.h5
3 files changed, 10 insertions, 7 deletions
diff --git a/libartbase/base/bit_vector.h b/libartbase/base/bit_vector.h
index a710c5d6ea..ea26b5a682 100644
--- a/libartbase/base/bit_vector.h
+++ b/libartbase/base/bit_vector.h
@@ -57,7 +57,7 @@ class BitVector {
using value_type = uint32_t;
using difference_type = ptrdiff_t;
using pointer = void;
- using reference = uint32_t;
+ using reference = void;
bool operator==(const IndexIterator& other) const;
diff --git a/libartbase/base/stl_util.h b/libartbase/base/stl_util.h
index 87b6d4bf3e..53eb410519 100644
--- a/libartbase/base/stl_util.h
+++ b/libartbase/base/stl_util.h
@@ -195,8 +195,8 @@ class CountIter {
using iterator_category = std::forward_iterator_tag;
using value_type = size_t;
using difference_type = size_t;
- using pointer = size_t;
- using reference = size_t;
+ using pointer = void;
+ using reference = void;
CountIter() : count_(0) {}
explicit CountIter(size_t count) : count_(count) {}
@@ -251,10 +251,10 @@ template <typename RealIter, typename Filter>
struct FilterIterator {
public:
using iterator_category = std::forward_iterator_tag;
- using value_type = typename RealIter::value_type;
+ using value_type = typename std::iterator_traits<RealIter>::value_type;
using difference_type = ptrdiff_t;
- using pointer = typename RealIter::pointer;
- using reference = typename RealIter::reference;
+ using pointer = typename std::iterator_traits<RealIter>::pointer;
+ using reference = typename std::iterator_traits<RealIter>::reference;
FilterIterator(RealIter rl,
Filter cond,
diff --git a/libartbase/base/transform_iterator.h b/libartbase/base/transform_iterator.h
index 552f31fa3b..3f7c952b60 100644
--- a/libartbase/base/transform_iterator.h
+++ b/libartbase/base/transform_iterator.h
@@ -43,7 +43,10 @@ class TransformIterator {
typename std::iterator_traits<BaseIterator>::iterator_category>,
"Transform iterator base must be an input iterator.");
- using InputType = typename std::iterator_traits<BaseIterator>::reference;
+ using BaseReference = typename std::iterator_traits<BaseIterator>::reference;
+ using InputType = std::conditional_t<std::is_same_v<BaseReference, void>,
+ typename std::iterator_traits<BaseIterator>::value_type,
+ BaseReference>;
using ResultType = std::result_of_t<Function(InputType)>;
public: