diff --git a/src/ArduinoJson/Array/JsonArray.hpp b/src/ArduinoJson/Array/JsonArray.hpp index 71b41ec1..e0699a90 100644 --- a/src/ArduinoJson/Array/JsonArray.hpp +++ b/src/ArduinoJson/Array/JsonArray.hpp @@ -44,8 +44,7 @@ class JsonArray : public detail::VariantOperators { // Returns a reference to the new element. // https://arduinojson.org/v7/api/jsonarray/add/ template - typename detail::enable_if::value, T>::type - add() const { + detail::enable_if_t::value, T> add() const { return add().to(); } @@ -53,8 +52,7 @@ class JsonArray : public detail::VariantOperators { // Returns a reference to the new element. // https://arduinojson.org/v7/api/jsonarray/add/ template - typename detail::enable_if::value, T>::type - add() const { + detail::enable_if_t::value, T> add() const { return JsonVariant(detail::ArrayData::addElement(data_, resources_), resources_); } @@ -117,7 +115,7 @@ class JsonArray : public detail::VariantOperators { // Removes the element at the specified index. // https://arduinojson.org/v7/api/jsonarray/remove/ template - typename detail::enable_if::value>::type remove( + detail::enable_if_t::value> remove( TVariant variant) const { if (variant.template is()) remove(variant.template as()); @@ -132,8 +130,8 @@ class JsonArray : public detail::VariantOperators { // Gets or sets the element at the specified index. // https://arduinojson.org/v7/api/jsonarray/subscript/ template - typename detail::enable_if::value, - detail::ElementProxy>::type + detail::enable_if_t::value, + detail::ElementProxy> operator[](T index) const { return {*this, size_t(index)}; } @@ -141,8 +139,8 @@ class JsonArray : public detail::VariantOperators { // Gets or sets the element at the specified index. // https://arduinojson.org/v7/api/jsonarray/subscript/ template - typename detail::enable_if::value, - detail::ElementProxy>::type + detail::enable_if_t::value, + detail::ElementProxy> operator[](const TVariant& variant) const { if (variant.template is()) return operator[](variant.template as()); diff --git a/src/ArduinoJson/Array/JsonArrayConst.hpp b/src/ArduinoJson/Array/JsonArrayConst.hpp index 19c36c7f..c6e027f8 100644 --- a/src/ArduinoJson/Array/JsonArrayConst.hpp +++ b/src/ArduinoJson/Array/JsonArrayConst.hpp @@ -46,8 +46,7 @@ class JsonArrayConst : public detail::VariantOperators { // Returns the element at the specified index. // https://arduinojson.org/v7/api/jsonarrayconst/subscript/ template - typename detail::enable_if::value, - JsonVariantConst>::type + detail::enable_if_t::value, JsonVariantConst> operator[](T index) const { return JsonVariantConst( detail::ArrayData::getElement(data_, size_t(index), resources_), @@ -57,8 +56,7 @@ class JsonArrayConst : public detail::VariantOperators { // Returns the element at the specified index. // https://arduinojson.org/v7/api/jsonarrayconst/subscript/ template - typename detail::enable_if::value, - JsonVariantConst>::type + detail::enable_if_t::value, JsonVariantConst> operator[](const TVariant& variant) const { if (variant.template is()) return operator[](variant.template as()); diff --git a/src/ArduinoJson/Array/Utilities.hpp b/src/ArduinoJson/Array/Utilities.hpp index ff589cea..9073468c 100644 --- a/src/ArduinoJson/Array/Utilities.hpp +++ b/src/ArduinoJson/Array/Utilities.hpp @@ -12,16 +12,16 @@ ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE // Copies a value to a JsonVariant. // This is a degenerated form of copyArray() to stop the recursion. template -inline typename detail::enable_if::value, bool>::type -copyArray(const T& src, JsonVariant dst) { +inline detail::enable_if_t::value, bool> copyArray( + const T& src, JsonVariant dst) { return dst.set(src); } // Copies values from an array to a JsonArray or a JsonVariant. // https://arduinojson.org/v7/api/misc/copyarray/ template -inline typename detail::enable_if< - !detail::is_base_of::value, bool>::type +inline detail::enable_if_t< + !detail::is_base_of::value, bool> copyArray(T (&src)[N], const TDestination& dst) { return copyArray(src, N, dst); } @@ -29,8 +29,8 @@ copyArray(T (&src)[N], const TDestination& dst) { // Copies values from an array to a JsonArray or a JsonVariant. // https://arduinojson.org/v7/api/misc/copyarray/ template -inline typename detail::enable_if< - !detail::is_base_of::value, bool>::type +inline detail::enable_if_t< + !detail::is_base_of::value, bool> copyArray(const T* src, size_t len, const TDestination& dst) { bool ok = true; for (size_t i = 0; i < len; i++) { @@ -63,8 +63,8 @@ inline bool copyArray(const T* src, size_t len, JsonDocument& dst) { // Copies a value from a JsonVariant. // This is a degenerated form of copyArray() to stop the recursion. template -inline typename detail::enable_if::value, size_t>::type -copyArray(JsonVariantConst src, T& dst) { +inline detail::enable_if_t::value, size_t> copyArray( + JsonVariantConst src, T& dst) { dst = src.as(); return 1; } @@ -103,10 +103,9 @@ inline size_t copyArray(JsonVariantConst src, char (&dst)[N]) { // Copies values from a JsonDocument to an array. // https://arduinojson.org/v7/api/misc/copyarray/ template -inline typename detail::enable_if< - detail::is_array::value && - detail::is_base_of::value, - size_t>::type +inline detail::enable_if_t::value && + detail::is_base_of::value, + size_t> copyArray(const TSource& src, T& dst) { return copyArray(src.template as(), dst); } diff --git a/src/ArduinoJson/Deserialization/Reader.hpp b/src/ArduinoJson/Deserialization/Reader.hpp index c4b5edb7..fed87b34 100644 --- a/src/ArduinoJson/Deserialization/Reader.hpp +++ b/src/ArduinoJson/Deserialization/Reader.hpp @@ -62,9 +62,8 @@ ARDUINOJSON_END_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template -Reader::type> makeReader(TInput&& input) { - return Reader::type>{ - detail::forward(input)}; +Reader> makeReader(TInput&& input) { + return Reader>{detail::forward(input)}; } template diff --git a/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp b/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp index 43c5a432..a4b11431 100644 --- a/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/ArduinoStreamReader.hpp @@ -9,8 +9,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template -struct Reader::value>::type> { +struct Reader::value>> { public: explicit Reader(Stream& stream) : stream_(&stream) {} diff --git a/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp b/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp index 4730be01..d55859f7 100644 --- a/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/ArduinoStringReader.hpp @@ -9,8 +9,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template -struct Reader::value>::type> +struct Reader::value>> : BoundedReader { explicit Reader(const ::String& s) : BoundedReader(s.c_str(), s.length()) {} diff --git a/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp b/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp index 1ca46c85..5584ec53 100644 --- a/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/IteratorReader.hpp @@ -4,6 +4,8 @@ #pragma once +#include + ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template @@ -29,13 +31,8 @@ class IteratorReader { } }; -template -struct void_ { - typedef void type; -}; - template -struct Reader::type> +struct Reader> : IteratorReader { explicit Reader(const TSource& source) : IteratorReader(source.begin(), diff --git a/src/ArduinoJson/Deserialization/Readers/RamReader.hpp b/src/ArduinoJson/Deserialization/Readers/RamReader.hpp index 8603bb13..4739d722 100644 --- a/src/ArduinoJson/Deserialization/Readers/RamReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/RamReader.hpp @@ -19,8 +19,7 @@ template struct IsCharOrVoid : IsCharOrVoid {}; template -struct Reader::value>::type> { +struct Reader::value>> { const char* ptr_; public: @@ -39,8 +38,7 @@ struct Reader -struct BoundedReader::value>::type> +struct BoundedReader::value>> : public IteratorReader { public: explicit BoundedReader(const void* ptr, size_t len) diff --git a/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp b/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp index 25ba6364..947dd7fe 100644 --- a/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/StdStreamReader.hpp @@ -9,8 +9,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template -struct Reader::value>::type> { +struct Reader::value>> { public: explicit Reader(std::istream& stream) : stream_(&stream) {} diff --git a/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp b/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp index ddb07b8b..92f9541c 100644 --- a/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp +++ b/src/ArduinoJson/Deserialization/Readers/VariantReader.hpp @@ -10,7 +10,7 @@ ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE template -struct Reader::value>::type> +struct Reader::value>> : Reader { explicit Reader(const TVariant& x) : Reader(x.template as()) {} diff --git a/src/ArduinoJson/Deserialization/deserialize.hpp b/src/ArduinoJson/Deserialization/deserialize.hpp index 21d18764..b33313e1 100644 --- a/src/ArduinoJson/Deserialization/deserialize.hpp +++ b/src/ArduinoJson/Deserialization/deserialize.hpp @@ -29,10 +29,9 @@ struct is_deserialize_destination : false_type {}; template struct is_deserialize_destination< - T, typename enable_if())), - ResourceManager*>::value>::type> : true_type { -}; + T, enable_if_t())), + ResourceManager*>::value>> : true_type {}; template inline void shrinkJsonDocument(TDestination&) { @@ -62,8 +61,8 @@ DeserializationError doDeserialize(TDestination&& dst, TReader reader, template