diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/nlohmann-json/fix-4742_std_optional.patch | |
Diffstat (limited to 'vcpkg/ports/nlohmann-json/fix-4742_std_optional.patch')
| -rw-r--r-- | vcpkg/ports/nlohmann-json/fix-4742_std_optional.patch | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/vcpkg/ports/nlohmann-json/fix-4742_std_optional.patch b/vcpkg/ports/nlohmann-json/fix-4742_std_optional.patch new file mode 100644 index 0000000..9f0edb4 --- /dev/null +++ b/vcpkg/ports/nlohmann-json/fix-4742_std_optional.patch @@ -0,0 +1,108 @@ +diff --git a/include/nlohmann/detail/conversions/from_json.hpp b/include/nlohmann/detail/conversions/from_json.hpp +index d647d742..797f714d 100644 +--- a/include/nlohmann/detail/conversions/from_json.hpp ++++ b/include/nlohmann/detail/conversions/from_json.hpp +@@ -13,9 +13,6 @@ + #include <forward_list> // forward_list + #include <iterator> // inserter, front_inserter, end + #include <map> // map +-#ifdef JSON_HAS_CPP_17 +- #include <optional> // optional +-#endif + #include <string> // string + #include <tuple> // tuple, make_tuple + #include <type_traits> // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +@@ -32,6 +29,11 @@ + #include <nlohmann/detail/string_concat.hpp> + #include <nlohmann/detail/value_t.hpp> + ++// include after macro_scope.hpp ++#ifdef JSON_HAS_CPP_17 ++ #include <optional> // optional ++#endif ++ + NLOHMANN_JSON_NAMESPACE_BEGIN + namespace detail + { +@@ -47,7 +49,6 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) + } + + #ifdef JSON_HAS_CPP_17 +-#ifndef JSON_USE_IMPLICIT_CONVERSIONS + template<typename BasicJsonType, typename T> + void from_json(const BasicJsonType& j, std::optional<T>& opt) + { +@@ -60,8 +61,6 @@ void from_json(const BasicJsonType& j, std::optional<T>& opt) + opt.emplace(j.template get<T>()); + } + } +- +-#endif // JSON_USE_IMPLICIT_CONVERSIONS + #endif // JSON_HAS_CPP_17 + + // overloads for basic_json template parameters +diff --git a/include/nlohmann/detail/conversions/to_json.hpp b/include/nlohmann/detail/conversions/to_json.hpp +index ead45665..f8413850 100644 +--- a/include/nlohmann/detail/conversions/to_json.hpp ++++ b/include/nlohmann/detail/conversions/to_json.hpp +@@ -267,7 +267,7 @@ struct external_constructor<value_t::object> + #ifdef JSON_HAS_CPP_17 + template<typename BasicJsonType, typename T, + enable_if_t<std::is_constructible<BasicJsonType, T>::value, int> = 0> +-void to_json(BasicJsonType& j, const std::optional<T>& opt) ++void to_json(BasicJsonType& j, const std::optional<T>& opt) noexcept + { + if (opt.has_value()) + { +diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp +index 82d69f7c..53a9ea70 100644 +--- a/single_include/nlohmann/json.hpp ++++ b/single_include/nlohmann/json.hpp +@@ -173,9 +173,6 @@ + #include <forward_list> // forward_list + #include <iterator> // inserter, front_inserter, end + #include <map> // map +-#ifdef JSON_HAS_CPP_17 +- #include <optional> // optional +-#endif + #include <string> // string + #include <tuple> // tuple, make_tuple + #include <type_traits> // is_arithmetic, is_same, is_enum, underlying_type, is_convertible +@@ -4817,6 +4814,11 @@ NLOHMANN_JSON_NAMESPACE_END + // #include <nlohmann/detail/value_t.hpp> + + ++// include after macro_scope.hpp ++#ifdef JSON_HAS_CPP_17 ++ #include <optional> // optional ++#endif ++ + NLOHMANN_JSON_NAMESPACE_BEGIN + namespace detail + { +@@ -4832,7 +4834,6 @@ inline void from_json(const BasicJsonType& j, typename std::nullptr_t& n) + } + + #ifdef JSON_HAS_CPP_17 +-#ifndef JSON_USE_IMPLICIT_CONVERSIONS + template<typename BasicJsonType, typename T> + void from_json(const BasicJsonType& j, std::optional<T>& opt) + { +@@ -4845,8 +4846,6 @@ void from_json(const BasicJsonType& j, std::optional<T>& opt) + opt.emplace(j.template get<T>()); + } + } +- +-#endif // JSON_USE_IMPLICIT_CONVERSIONS + #endif // JSON_HAS_CPP_17 + + // overloads for basic_json template parameters +@@ -5914,7 +5913,7 @@ struct external_constructor<value_t::object> + #ifdef JSON_HAS_CPP_17 + template<typename BasicJsonType, typename T, + enable_if_t<std::is_constructible<BasicJsonType, T>::value, int> = 0> +-void to_json(BasicJsonType& j, const std::optional<T>& opt) ++void to_json(BasicJsonType& j, const std::optional<T>& opt) noexcept + { + if (opt.has_value()) + { |