summaryrefslogtreecommitdiffstats
path: root/libraries/nlohmann_json/patches/1_6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee.patch
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/nlohmann_json/patches/1_6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee.patch')
-rw-r--r--libraries/nlohmann_json/patches/1_6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee.patch55
1 files changed, 55 insertions, 0 deletions
diff --git a/libraries/nlohmann_json/patches/1_6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee.patch b/libraries/nlohmann_json/patches/1_6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee.patch
new file mode 100644
index 0000000000..6f133312ee
--- /dev/null
+++ b/libraries/nlohmann_json/patches/1_6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee.patch
@@ -0,0 +1,55 @@
+From 6cec5aefc97ad219b6fd5a4132f88f7c8f6800ee Mon Sep 17 00:00:00 2001
+From: Sergei Trofimovich <slyich@gmail.com>
+Date: Wed, 8 Mar 2023 11:31:56 +0000
+Subject: [PATCH] custom allocators: define missing 'rebind' type (#3895)
+
+---
+ tests/src/unit-allocator.cpp | 9 +++++++++
+ tests/src/unit-regression2.cpp | 9 +++++++++
+ 2 files changed, 18 insertions(+)
+
+diff --git a/tests/src/unit-allocator.cpp b/tests/src/unit-allocator.cpp
+index 76e3b03f10..f2e63552a4 100644
+--- a/tests/src/unit-allocator.cpp
++++ b/tests/src/unit-allocator.cpp
+@@ -20,11 +20,20 @@ struct bad_allocator : std::allocator<T>
+ {
+ using std::allocator<T>::allocator;
+
++ bad_allocator() = default;
++ template<class U> bad_allocator(const bad_allocator<U>& /*unused*/) { }
++
+ template<class... Args>
+ void construct(T* /*unused*/, Args&& ... /*unused*/)
+ {
+ throw std::bad_alloc();
+ }
++
++ template <class U>
++ struct rebind
++ {
++ using other = bad_allocator<U>;
++ };
+ };
+ } // namespace
+
+diff --git a/tests/src/unit-regression2.cpp b/tests/src/unit-regression2.cpp
+index 2bb9b32e51..dbafb436ba 100644
+--- a/tests/src/unit-regression2.cpp
++++ b/tests/src/unit-regression2.cpp
+@@ -189,6 +189,15 @@ class my_allocator : public std::allocator<T>
+ {
+ public:
+ using std::allocator<T>::allocator;
++
++ my_allocator() = default;
++ template<class U> my_allocator(const my_allocator<U>& /*unused*/) { }
++
++ template <class U>
++ struct rebind
++ {
++ using other = my_allocator<U>;
++ };
+ };
+
+ /////////////////////////////////////////////////////////////////////