diff options
Diffstat (limited to 'dep')
-rw-r--r-- | dep/protobuf/fix_std_iterator_deprecation_warnings.diff | 111 | ||||
-rw-r--r-- | dep/protobuf/src/google/protobuf/repeated_field.h | 51 |
2 files changed, 141 insertions, 21 deletions
diff --git a/dep/protobuf/fix_std_iterator_deprecation_warnings.diff b/dep/protobuf/fix_std_iterator_deprecation_warnings.diff new file mode 100644 index 00000000000..3894b2c7f2b --- /dev/null +++ b/dep/protobuf/fix_std_iterator_deprecation_warnings.diff @@ -0,0 +1,111 @@ +diff --git a/dep/protobuf/src/google/protobuf/repeated_field.h b/dep/protobuf/src/google/protobuf/repeated_field.h +index c4dced368d..b8e378ac3e 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<typename Element> +-class RepeatedPtrIterator +- : public std::iterator< +- std::random_access_iterator_tag, Element> { ++class RepeatedPtrIterator { + public: + typedef RepeatedPtrIterator<Element> 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<typename Element, typename VoidPtr> +-class RepeatedPtrOverPtrsIterator +- : public std::iterator<std::random_access_iterator_tag, Element*> { ++class RepeatedPtrOverPtrsIterator { + public: + typedef RepeatedPtrOverPtrsIterator<Element, VoidPtr> 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<Element>::pointer_end() const { + + namespace internal { + // A back inserter for RepeatedField objects. +-template<typename T> class RepeatedFieldBackInsertIterator +- : public std::iterator<std::output_iterator_tag, T> { ++template<typename T> 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<T>* const mutable_field) + : field_(mutable_field) { +@@ -1505,9 +1506,13 @@ template<typename T> class RepeatedFieldBackInsertIterator + }; + + // A back inserter for RepeatedPtrField objects. +-template<typename T> class RepeatedPtrFieldBackInsertIterator +- : public std::iterator<std::output_iterator_tag, T> { ++template<typename T> 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<T>* const mutable_field) + : field_(mutable_field) { +@@ -1537,9 +1542,13 @@ template<typename T> class RepeatedPtrFieldBackInsertIterator + + // A back inserter for RepeatedPtrFields that inserts by transfering ownership + // of a pointer. +-template<typename T> class AllocatedRepeatedPtrFieldBackInsertIterator +- : public std::iterator<std::output_iterator_tag, T> { ++template<typename T> 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<T>* const mutable_field) + : field_(mutable_field) { 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<typename Element> -class RepeatedPtrIterator - : public std::iterator< - std::random_access_iterator_tag, Element> { +class RepeatedPtrIterator { public: typedef RepeatedPtrIterator<Element> 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<typename Element, typename VoidPtr> -class RepeatedPtrOverPtrsIterator - : public std::iterator<std::random_access_iterator_tag, Element*> { +class RepeatedPtrOverPtrsIterator { public: typedef RepeatedPtrOverPtrsIterator<Element, VoidPtr> 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<Element>::pointer_end() const { namespace internal { // A back inserter for RepeatedField objects. -template<typename T> class RepeatedFieldBackInsertIterator - : public std::iterator<std::output_iterator_tag, T> { +template<typename T> 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<T>* const mutable_field) : field_(mutable_field) { @@ -1505,9 +1506,13 @@ template<typename T> class RepeatedFieldBackInsertIterator }; // A back inserter for RepeatedPtrField objects. -template<typename T> class RepeatedPtrFieldBackInsertIterator - : public std::iterator<std::output_iterator_tag, T> { +template<typename T> 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<T>* const mutable_field) : field_(mutable_field) { @@ -1537,9 +1542,13 @@ template<typename T> class RepeatedPtrFieldBackInsertIterator // A back inserter for RepeatedPtrFields that inserts by transfering ownership // of a pointer. -template<typename T> class AllocatedRepeatedPtrFieldBackInsertIterator - : public std::iterator<std::output_iterator_tag, T> { +template<typename T> 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<T>* const mutable_field) : field_(mutable_field) { |