diff --git a/extras/tests/Misc/StringAdapters.cpp b/extras/tests/Misc/StringAdapters.cpp index 82139eec..b668f50f 100644 --- a/extras/tests/Misc/StringAdapters.cpp +++ b/extras/tests/Misc/StringAdapters.cpp @@ -8,6 +8,7 @@ #include "custom_string.hpp" #include "weird_strcmp.hpp" +#include #include #include diff --git a/src/ArduinoJson/Object/ObjectShortcuts.hpp b/src/ArduinoJson/Object/ObjectShortcuts.hpp index d40e9a2a..a19f8030 100644 --- a/src/ArduinoJson/Object/ObjectShortcuts.hpp +++ b/src/ArduinoJson/Object/ObjectShortcuts.hpp @@ -6,7 +6,7 @@ #include #include -#include +#include namespace ARDUINOJSON_NAMESPACE { template diff --git a/src/ArduinoJson/Strings/Adapters/ArduinoString.hpp b/src/ArduinoJson/Strings/Adapters/ArduinoString.hpp index b12d3670..13d39181 100644 --- a/src/ArduinoJson/Strings/Adapters/ArduinoString.hpp +++ b/src/ArduinoJson/Strings/Adapters/ArduinoString.hpp @@ -7,7 +7,6 @@ #include #include -#include #include namespace ARDUINOJSON_NAMESPACE { @@ -23,10 +22,4 @@ struct StringAdapter< } }; -template <> -struct IsString< ::String> : true_type {}; - -template <> -struct IsString< ::StringSumHelper> : true_type {}; - } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/Strings/Adapters/FlashString.hpp b/src/ArduinoJson/Strings/Adapters/FlashString.hpp index f5714b47..efefdb29 100644 --- a/src/ArduinoJson/Strings/Adapters/FlashString.hpp +++ b/src/ArduinoJson/Strings/Adapters/FlashString.hpp @@ -7,7 +7,7 @@ #include #include -#include +#include namespace ARDUINOJSON_NAMESPACE { @@ -88,7 +88,4 @@ struct SizedStringAdapter { } }; -template <> -struct IsString : true_type {}; - } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/Strings/Adapters/JsonString.hpp b/src/ArduinoJson/Strings/Adapters/JsonString.hpp index f8bde252..dec82a6b 100644 --- a/src/ArduinoJson/Strings/Adapters/JsonString.hpp +++ b/src/ArduinoJson/Strings/Adapters/JsonString.hpp @@ -5,8 +5,8 @@ #pragma once #include -#include #include +#include namespace ARDUINOJSON_NAMESPACE { @@ -33,7 +33,4 @@ struct StringAdapter { } }; -template <> -struct IsString : true_type {}; - } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/Strings/Adapters/RamString.hpp b/src/ArduinoJson/Strings/Adapters/RamString.hpp index 44f2f3dc..fabd5e09 100644 --- a/src/ArduinoJson/Strings/Adapters/RamString.hpp +++ b/src/ArduinoJson/Strings/Adapters/RamString.hpp @@ -8,7 +8,6 @@ #include // strcmp #include -#include #include #include @@ -58,12 +57,6 @@ class ZeroTerminatedRamString { const char* _str; }; -template <> -struct IsString : true_type {}; - -template <> -struct IsString : true_type {}; - template struct StringAdapter::type> { typedef ZeroTerminatedRamString AdaptedString; @@ -73,15 +66,6 @@ struct StringAdapter::type> { } }; -template <> -struct IsString : true_type {}; - -template -struct IsString : true_type {}; - -template -struct IsString : true_type {}; - template struct StringAdapter::type> { typedef ZeroTerminatedRamString AdaptedString; diff --git a/src/ArduinoJson/Strings/Adapters/StdString.hpp b/src/ArduinoJson/Strings/Adapters/StdString.hpp index 775a168a..76f39fa8 100644 --- a/src/ArduinoJson/Strings/Adapters/StdString.hpp +++ b/src/ArduinoJson/Strings/Adapters/StdString.hpp @@ -20,8 +20,4 @@ struct StringAdapter, void> { } }; -template -struct IsString > : true_type { -}; - } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/Strings/Adapters/StringView.hpp b/src/ArduinoJson/Strings/Adapters/StringView.hpp index daef1626..543f7658 100644 --- a/src/ArduinoJson/Strings/Adapters/StringView.hpp +++ b/src/ArduinoJson/Strings/Adapters/StringView.hpp @@ -19,7 +19,4 @@ struct StringAdapter { } }; -template <> -struct IsString : true_type {}; - } // namespace ARDUINOJSON_NAMESPACE diff --git a/src/ArduinoJson/Strings/IsString.hpp b/src/ArduinoJson/Strings/IsString.hpp index 077b1660..e674a64e 100644 --- a/src/ArduinoJson/Strings/IsString.hpp +++ b/src/ArduinoJson/Strings/IsString.hpp @@ -5,13 +5,16 @@ #pragma once #include +#include namespace ARDUINOJSON_NAMESPACE { template struct IsString : false_type {}; -template -struct IsString : IsString {}; +template +struct IsString< + T, typename make_void::AdaptedString>::type> + : true_type {}; } // namespace ARDUINOJSON_NAMESPACE