From 924e95c6e801937e890178741fc286a86090df33 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9o=20DELRIEU?= Date: Wed, 5 Sep 2018 16:42:55 +0200 Subject: [PATCH] refactor is_compatible_string_type --- include/nlohmann/detail/meta/type_traits.hpp | 22 +++++++++----------- single_include/nlohmann/json.hpp | 22 +++++++++----------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/include/nlohmann/detail/meta/type_traits.hpp b/include/nlohmann/detail/meta/type_traits.hpp index 1714a3d6..d993bc17 100644 --- a/include/nlohmann/detail/meta/type_traits.hpp +++ b/include/nlohmann/detail/meta/type_traits.hpp @@ -90,25 +90,23 @@ template struct is_compatible_object_type : is_compatible_object_type_impl {}; -template +template struct is_compatible_string_type_impl : std::false_type {}; -template -struct is_compatible_string_type_impl +template +struct is_compatible_string_type_impl < + BasicJsonType, CompatibleStringType, + enable_if_t::value >> { static constexpr auto value = - std::is_same::value and - std::is_constructible::value; + std::is_constructible::value; }; -template +template struct is_compatible_string_type -{ - static auto constexpr value = is_compatible_string_type_impl < - conjunction>, - is_detected>::value, - typename BasicJsonType::string_t, CompatibleStringType >::value; -}; + : is_compatible_string_type_impl {}; template struct is_basic_json_nested_type diff --git a/single_include/nlohmann/json.hpp b/single_include/nlohmann/json.hpp index cfadee2d..ce08aab8 100644 --- a/single_include/nlohmann/json.hpp +++ b/single_include/nlohmann/json.hpp @@ -470,25 +470,23 @@ template struct is_compatible_object_type : is_compatible_object_type_impl {}; -template +template struct is_compatible_string_type_impl : std::false_type {}; -template -struct is_compatible_string_type_impl +template +struct is_compatible_string_type_impl < + BasicJsonType, CompatibleStringType, + enable_if_t::value >> { static constexpr auto value = - std::is_same::value and - std::is_constructible::value; + std::is_constructible::value; }; -template +template struct is_compatible_string_type -{ - static auto constexpr value = is_compatible_string_type_impl < - conjunction>, - is_detected>::value, - typename BasicJsonType::string_t, CompatibleStringType >::value; -}; + : is_compatible_string_type_impl {}; template struct is_basic_json_nested_type