mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-03 20:31:23 +00:00
Fix reverse_iterator in Vector and tests (#5344)
Before this commit tests for iterators passed, even if the code inside the loop has not been executed.
This commit is contained in:
committed by
Wouter van Oortmerssen
parent
0bb3ce6935
commit
39bd667fd0
@@ -201,14 +201,16 @@ template<typename T, typename IT> struct VectorIterator {
|
||||
template<typename Iterator> struct VectorReverseIterator :
|
||||
public std::reverse_iterator<Iterator> {
|
||||
|
||||
explicit VectorReverseIterator(Iterator iter) : iter_(iter) {}
|
||||
explicit VectorReverseIterator(Iterator iter) :
|
||||
std::reverse_iterator<Iterator>(iter) {}
|
||||
|
||||
typename Iterator::value_type operator*() const { return *(iter_ - 1); }
|
||||
typename Iterator::value_type operator*() const {
|
||||
return *(std::reverse_iterator<Iterator>::current);
|
||||
}
|
||||
|
||||
typename Iterator::value_type operator->() const { return *(iter_ - 1); }
|
||||
|
||||
private:
|
||||
Iterator iter_;
|
||||
typename Iterator::value_type operator->() const {
|
||||
return *(std::reverse_iterator<Iterator>::current);
|
||||
}
|
||||
};
|
||||
|
||||
struct String;
|
||||
@@ -269,11 +271,11 @@ template<typename T> class Vector {
|
||||
iterator end() { return iterator(Data(), size()); }
|
||||
const_iterator end() const { return const_iterator(Data(), size()); }
|
||||
|
||||
reverse_iterator rbegin() { return reverse_iterator(end()); }
|
||||
const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); }
|
||||
reverse_iterator rbegin() { return reverse_iterator(end() - 1); }
|
||||
const_reverse_iterator rbegin() const { return const_reverse_iterator(end() - 1); }
|
||||
|
||||
reverse_iterator rend() { return reverse_iterator(end()); }
|
||||
const_reverse_iterator rend() const { return const_reverse_iterator(end()); }
|
||||
reverse_iterator rend() { return reverse_iterator(begin() - 1); }
|
||||
const_reverse_iterator rend() const { return const_reverse_iterator(begin() - 1); }
|
||||
|
||||
const_iterator cbegin() const { return begin(); }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user