mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-20 15:19:07 +01:00
1b8d4a6f1e54 Merge bitcoin-core/libmultiprocess#194: mpgen: Work around c++20 / capnproto 0.8 incompatibility f1fad396bf5f Merge bitcoin-core/libmultiprocess#195: ci: Add openbsd eed42f210d17 ci: Bump all tasks to actions/checkout@v5 486a510bbeff ci: Remove ancient and problematic -lstdc++fs in mpexample dd40897efe79 Add missing thread include 98414e7d2867 ci: Add openbsd dc3ba2204606 cmake, doc: Add check for CVE-2022-46149 cb170d4913a2 Merge bitcoin-core/libmultiprocess#193: build: require CapnProto 0.7.0 or better 8ceeaa6ae401 ci: Add olddeps job to test old dependencies versions c4cb758eccb5 mpgen: Work around c++20 / capnproto 0.8 incompatibility 30930dff7b06 build: require CapnProto 0.7.0 or better git-subtree-dir: src/ipc/libmultiprocess git-subtree-split: 1b8d4a6f1e54b92708bd2ad627ec6d440a1daf3d
30 lines
1.2 KiB
Diff
30 lines
1.2 KiB
Diff
commit e3da7da967b94f373c29a198ce45f30fb9f0e517
|
|
Author: Ed Catmur <ed@catmur.uk>
|
|
Date: Tue Jan 31 16:27:04 2023 +0000
|
|
|
|
Remove operator!= synthesized by spaceship
|
|
|
|
An operator!= suppresses the reversed equality comparison candidate generation.
|
|
|
|
This is visible in clang 16 (rc0 just released) and in gcc trunk (so probably gcc 13).
|
|
|
|
diff --git a/c++/src/kj/string.h b/c++/src/kj/string.h
|
|
index 193442aa..17835892 100644
|
|
--- a/c++/src/kj/string.h
|
|
+++ b/c++/src/kj/string.h
|
|
@@ -122,10 +122,14 @@ public:
|
|
inline constexpr const char* end() const { return content.end() - 1; }
|
|
|
|
inline constexpr bool operator==(decltype(nullptr)) const { return content.size() <= 1; }
|
|
+#if !__cpp_impl_three_way_comparison
|
|
inline constexpr bool operator!=(decltype(nullptr)) const { return content.size() > 1; }
|
|
+#endif
|
|
|
|
inline bool operator==(const StringPtr& other) const;
|
|
+#if !__cpp_impl_three_way_comparison
|
|
inline bool operator!=(const StringPtr& other) const { return !(*this == other); }
|
|
+#endif
|
|
inline bool operator< (const StringPtr& other) const;
|
|
inline bool operator> (const StringPtr& other) const { return other < *this; }
|
|
inline bool operator<=(const StringPtr& other) const { return !(other < *this); }
|