From 073d1cb4ec22be341f7ba1f918d206add8f0e2bf Mon Sep 17 00:00:00 2001 From: Shauren Date: Wed, 17 May 2023 17:35:03 +0200 Subject: Dep/protobuf: Fixed gcc warnings --- dep/protobuf/src/google/protobuf/repeated_field.h | 51 +++++++++++++---------- 1 file changed, 30 insertions(+), 21 deletions(-) (limited to 'dep/protobuf/src') diff --git a/dep/protobuf/src/google/protobuf/repeated_field.h b/dep/protobuf/src/google/protobuf/repeated_field.h index c4dced368de..b8e378ac3e0 100644 --- a/dep/protobuf/src/google/protobuf/repeated_field.h +++ b/dep/protobuf/src/google/protobuf/repeated_field.h @@ -1250,13 +1250,11 @@ namespace internal { // This code based on net/proto/proto-array-internal.h by Jeffrey Yasskin // (jyasskin@google.com). template -class RepeatedPtrIterator - : public std::iterator< - std::random_access_iterator_tag, Element> { +class RepeatedPtrIterator { public: typedef RepeatedPtrIterator iterator; - typedef std::iterator< - std::random_access_iterator_tag, Element> superclass; + + typedef std::random_access_iterator_tag iterator_category; // Shadow the value_type in std::iterator<> because const_iterator::value_type // needs to be T, not const T. @@ -1264,9 +1262,9 @@ class RepeatedPtrIterator // Let the compiler know that these are type names, so we don't have to // write "typename" in front of them everywhere. - typedef typename superclass::reference reference; - typedef typename superclass::pointer pointer; - typedef typename superclass::difference_type difference_type; + typedef Element& reference; + typedef Element* pointer; + typedef std::ptrdiff_t difference_type; RepeatedPtrIterator() : it_(NULL) {} explicit RepeatedPtrIterator(void* const* it) : it_(it) {} @@ -1346,12 +1344,11 @@ class RepeatedPtrIterator // referenced by the iterator. It should either be "void *" for a mutable // iterator, or "const void *" for a constant iterator. template -class RepeatedPtrOverPtrsIterator - : public std::iterator { +class RepeatedPtrOverPtrsIterator { public: typedef RepeatedPtrOverPtrsIterator iterator; - typedef std::iterator< - std::random_access_iterator_tag, Element*> superclass; + + typedef std::random_access_iterator_tag iterator_category; // Shadow the value_type in std::iterator<> because const_iterator::value_type // needs to be T, not const T. @@ -1359,9 +1356,9 @@ class RepeatedPtrOverPtrsIterator // Let the compiler know that these are type names, so we don't have to // write "typename" in front of them everywhere. - typedef typename superclass::reference reference; - typedef typename superclass::pointer pointer; - typedef typename superclass::difference_type difference_type; + typedef Element*& reference; + typedef Element** pointer; + typedef std::ptrdiff_t difference_type; RepeatedPtrOverPtrsIterator() : it_(NULL) {} explicit RepeatedPtrOverPtrsIterator(VoidPtr* it) : it_(it) {} @@ -1479,9 +1476,13 @@ RepeatedPtrField::pointer_end() const { namespace internal { // A back inserter for RepeatedField objects. -template class RepeatedFieldBackInsertIterator - : public std::iterator { +template class RepeatedFieldBackInsertIterator { public: + typedef std::output_iterator_tag iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; explicit RepeatedFieldBackInsertIterator( RepeatedField* const mutable_field) : field_(mutable_field) { @@ -1505,9 +1506,13 @@ template class RepeatedFieldBackInsertIterator }; // A back inserter for RepeatedPtrField objects. -template class RepeatedPtrFieldBackInsertIterator - : public std::iterator { +template class RepeatedPtrFieldBackInsertIterator { public: + typedef std::output_iterator_tag iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; RepeatedPtrFieldBackInsertIterator( RepeatedPtrField* const mutable_field) : field_(mutable_field) { @@ -1537,9 +1542,13 @@ template class RepeatedPtrFieldBackInsertIterator // A back inserter for RepeatedPtrFields that inserts by transfering ownership // of a pointer. -template class AllocatedRepeatedPtrFieldBackInsertIterator - : public std::iterator { +template class AllocatedRepeatedPtrFieldBackInsertIterator { public: + typedef std::output_iterator_tag iterator_category; + typedef T value_type; + typedef std::ptrdiff_t difference_type; + typedef T* pointer; + typedef T& reference; explicit AllocatedRepeatedPtrFieldBackInsertIterator( RepeatedPtrField* const mutable_field) : field_(mutable_field) { -- cgit v1.2.3