mirror of https://github.com/microsoft/vcpkg.git
109 lines
3.7 KiB
Diff
109 lines
3.7 KiB
Diff
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())
|
|
{
|