Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/miloyip/rapidjson.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNikolay <211292+kolya7k@users.noreply.github.com>2020-03-30 05:20:35 +0300
committerGitHub <noreply@github.com>2020-03-30 05:20:35 +0300
commitebcbd04484fcdaddbb9fd7798e76bbfb4ae8f840 (patch)
treeca0fae9b61af129d50e5e70faac1e1c7e68c6a1a /include/rapidjson/document.h
parent2661a17c7eaede8c881e7455f5a66fd593ed8633 (diff)
Three-way comparison for CLang 10 fix (#1679)
C++20 features must enable additional functionality, not to change interface completely
Diffstat (limited to 'include/rapidjson/document.h')
-rw-r--r--include/rapidjson/document.h21
1 files changed, 10 insertions, 11 deletions
diff --git a/include/rapidjson/document.h b/include/rapidjson/document.h
index 1a59a14e..68aaae7e 100644
--- a/include/rapidjson/document.h
+++ b/include/rapidjson/document.h
@@ -24,7 +24,7 @@
#include "encodedstream.h"
#include <new> // placement new
#include <limits>
-#ifdef __cpp_impl_three_way_comparison
+#ifdef __cpp_lib_three_way_comparison
#include <compare>
#endif
@@ -250,16 +250,15 @@ public:
//! @name relations
//@{
-#ifdef __cpp_impl_three_way_comparison
- template <bool Const_> bool operator==(const GenericMemberIterator<Const_,Encoding,Allocator>& that) const { return ptr_ == that.ptr_; }
- template <bool Const_> std::strong_ordering operator<=>(const GenericMemberIterator<Const_,Encoding,Allocator>& that) const { return ptr_ <=> that.ptr_; }
-#else
- bool operator==(ConstIterator that) const { return ptr_ == that.ptr_; }
- bool operator!=(ConstIterator that) const { return ptr_ != that.ptr_; }
- bool operator<=(ConstIterator that) const { return ptr_ <= that.ptr_; }
- bool operator>=(ConstIterator that) const { return ptr_ >= that.ptr_; }
- bool operator< (ConstIterator that) const { return ptr_ < that.ptr_; }
- bool operator> (ConstIterator that) const { return ptr_ > that.ptr_; }
+ template <bool Const_> bool operator==(const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ == that.ptr_; }
+ template <bool Const_> bool operator!=(const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ != that.ptr_; }
+ template <bool Const_> bool operator<=(const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ <= that.ptr_; }
+ template <bool Const_> bool operator>=(const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ >= that.ptr_; }
+ template <bool Const_> bool operator< (const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ < that.ptr_; }
+ template <bool Const_> bool operator> (const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ > that.ptr_; }
+
+#ifdef __cpp_lib_three_way_comparison
+ template <bool Const_> std::strong_ordering operator<=>(const GenericMemberIterator<Const_, Encoding, Allocator>& that) const { return ptr_ <=> that.ptr_; }
#endif
//@}