From b41c6860a48c60c6e97430e1e7e9792e434b0840 Mon Sep 17 00:00:00 2001 From: rh101 Date: Tue, 25 Jun 2019 01:20:45 +1000 Subject: [PATCH 1/2] Fix compiler warning when using C++17. --- src/rapidjson/include/rapidjson/document.h | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/rapidjson/include/rapidjson/document.h b/src/rapidjson/include/rapidjson/document.h index ca809631..ef617040 100644 --- a/src/rapidjson/include/rapidjson/document.h +++ b/src/rapidjson/include/rapidjson/document.h @@ -56,7 +56,7 @@ RAPIDJSON_DIAG_OFF(effc++) #endif // RAPIDJSON_HAS_STDSTRING #ifndef RAPIDJSON_NOMEMBERITERATORCLASS -#include // std::iterator, std::random_access_iterator_tag +#include // std::random_access_iterator_tag #endif #if RAPIDJSON_HAS_CXX11_RVALUE_REFS @@ -106,9 +106,7 @@ struct GenericMember { \see GenericMember, GenericValue::MemberIterator, GenericValue::ConstMemberIterator */ template -class GenericMemberIterator - : public std::iterator >::Type> { +class GenericMemberIterator { friend class GenericValue; template friend class GenericMemberIterator; @@ -125,12 +123,21 @@ class GenericMemberIterator //! Non-constant iterator type typedef GenericMemberIterator NonConstIterator; + /** \name std::iterator_traits support */ + //@{ + typedef ValueType value_type; + typedef ValueType * pointer; + typedef ValueType & reference; + typedef std::ptrdiff_t difference_type; + typedef std::random_access_iterator_tag iterator_category; + //@} + //! Pointer to (const) GenericMember - typedef typename BaseType::pointer Pointer; + typedef pointer Pointer; //! Reference to (const) GenericMember - typedef typename BaseType::reference Reference; + typedef reference Reference; //! Signed integer type (e.g. \c ptrdiff_t) - typedef typename BaseType::difference_type DifferenceType; + typedef difference_type DifferenceType; //! Default constructor (singular value) /*! Creates an iterator pointing to no element. From f4fb9107ad8e93011fbde6061b6b6e2cbe9a992d Mon Sep 17 00:00:00 2001 From: rh101 Date: Tue, 25 Jun 2019 02:28:42 +1000 Subject: [PATCH 2/2] Needed to remove one more line for fix. --- src/rapidjson/include/rapidjson/document.h | 1 - 1 file changed, 1 deletion(-) diff --git a/src/rapidjson/include/rapidjson/document.h b/src/rapidjson/include/rapidjson/document.h index ef617040..f286aeeb 100644 --- a/src/rapidjson/include/rapidjson/document.h +++ b/src/rapidjson/include/rapidjson/document.h @@ -113,7 +113,6 @@ class GenericMemberIterator { typedef GenericMember PlainType; typedef typename internal::MaybeAddConst::Type ValueType; - typedef std::iterator BaseType; public: //! Iterator type itself