From e390587e91c67cf929b1f6f56488be9016fe6f93 Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Fri, 19 Jan 2018 08:32:15 +0100 Subject: [PATCH] Kept only two namespaces ArduinoJson and ArduinoJson::Internals --- src/ArduinoJson/Data/ValueSaver.hpp | 8 +- .../Deserialization/JsonParser.hpp | 9 +- .../Deserialization/JsonParserImpl.hpp | 3 +- src/ArduinoJson/DynamicJsonBuffer.hpp | 5 +- src/ArduinoJson/JsonArray.hpp | 9 +- src/ArduinoJson/JsonArraySubscript.hpp | 36 ++++--- src/ArduinoJson/JsonBuffer.hpp | 4 +- src/ArduinoJson/JsonBufferBase.hpp | 14 +-- src/ArduinoJson/JsonObject.hpp | 33 +++--- src/ArduinoJson/JsonObjectSubscript.hpp | 18 ++-- src/ArduinoJson/JsonVariant.hpp | 102 +++++++++--------- src/ArduinoJson/JsonVariantBase.hpp | 6 +- src/ArduinoJson/JsonVariantCasts.hpp | 2 + src/ArduinoJson/JsonVariantComparisons.hpp | 30 +++--- src/ArduinoJson/JsonVariantImpl.hpp | 8 +- src/ArduinoJson/JsonVariantOr.hpp | 2 + src/ArduinoJson/JsonVariantSubscripts.hpp | 28 ++--- src/ArduinoJson/Polyfills/ctype.hpp | 2 +- src/ArduinoJson/Polyfills/isFloat.hpp | 2 +- src/ArduinoJson/Polyfills/isInteger.hpp | 2 +- src/ArduinoJson/Polyfills/math.hpp | 2 +- src/ArduinoJson/Polyfills/parseFloat.hpp | 4 +- src/ArduinoJson/Polyfills/parseInteger.hpp | 2 +- src/ArduinoJson/Serialization/FloatParts.hpp | 2 +- .../Serialization/JsonPrintable.hpp | 12 +-- .../Serialization/JsonSerializer.hpp | 7 +- src/ArduinoJson/Serialization/JsonWriter.hpp | 4 +- src/ArduinoJson/StaticJsonBuffer.hpp | 7 +- .../StringTraits/ArduinoStream.hpp | 10 +- src/ArduinoJson/StringTraits/CharPointer.hpp | 5 +- src/ArduinoJson/StringTraits/StdStream.hpp | 10 +- src/ArduinoJson/TypeTraits/EnableIf.hpp | 2 +- src/ArduinoJson/TypeTraits/FloatTraits.hpp | 2 +- src/ArduinoJson/TypeTraits/IsArray.hpp | 2 +- src/ArduinoJson/TypeTraits/IsBaseOf.hpp | 2 +- src/ArduinoJson/TypeTraits/IsChar.hpp | 2 +- src/ArduinoJson/TypeTraits/IsConst.hpp | 2 +- .../TypeTraits/IsFloatingPoint.hpp | 2 +- src/ArduinoJson/TypeTraits/IsIntegral.hpp | 8 +- src/ArduinoJson/TypeTraits/IsSame.hpp | 2 +- .../TypeTraits/IsSignedIntegral.hpp | 16 ++- .../TypeTraits/IsUnsignedIntegral.hpp | 16 ++- src/ArduinoJson/TypeTraits/IsVariant.hpp | 2 +- src/ArduinoJson/TypeTraits/RemoveConst.hpp | 2 +- .../TypeTraits/RemoveReference.hpp | 2 +- test/DynamicJsonBuffer/alloc.cpp | 2 + test/DynamicJsonBuffer/no_memory.cpp | 2 + test/Misc/TypeTraits.cpp | 2 +- test/Polyfills/isFloat.cpp | 2 +- test/Polyfills/isInteger.cpp | 2 +- test/Polyfills/parseFloat.cpp | 2 +- test/Polyfills/parseInteger.cpp | 2 +- test/StaticJsonBuffer/startString.cpp | 2 + 53 files changed, 241 insertions(+), 225 deletions(-) diff --git a/src/ArduinoJson/Data/ValueSaver.hpp b/src/ArduinoJson/Data/ValueSaver.hpp index 0e996e6a..9750f1ac 100644 --- a/src/ArduinoJson/Data/ValueSaver.hpp +++ b/src/ArduinoJson/Data/ValueSaver.hpp @@ -22,8 +22,8 @@ struct ValueSaver { }; template -struct ValueSaver::should_duplicate>::type> { +struct ValueSaver< + Source, typename EnableIf::should_duplicate>::type> { template static bool save(JsonBuffer* buffer, Destination& dest, Source source) { if (!StringTraits::is_null(source)) { @@ -40,8 +40,8 @@ struct ValueSaver -struct ValueSaver::should_duplicate>::type> { +struct ValueSaver< + Char*, typename EnableIf::should_duplicate>::type> { template static bool save(JsonBuffer*, Destination& dest, Char* source) { dest = reinterpret_cast(source); diff --git a/src/ArduinoJson/Deserialization/JsonParser.hpp b/src/ArduinoJson/Deserialization/JsonParser.hpp index bd26a15c..2f6e6de1 100644 --- a/src/ArduinoJson/Deserialization/JsonParser.hpp +++ b/src/ArduinoJson/Deserialization/JsonParser.hpp @@ -71,7 +71,7 @@ class JsonParser { template struct JsonParserBuilder { - typedef typename Internals::StringTraits::Reader InputReader; + typedef typename StringTraits::Reader InputReader; typedef JsonParser TParser; static TParser makeParser(TJsonBuffer *buffer, TString &json, @@ -81,10 +81,9 @@ struct JsonParserBuilder { }; template -struct JsonParserBuilder< - TJsonBuffer, TChar *, - typename TypeTraits::EnableIf::value>::type> { - typedef typename Internals::StringTraits::Reader TReader; +struct JsonParserBuilder::value>::type> { + typedef typename StringTraits::Reader TReader; typedef StringWriter TWriter; typedef JsonParser TParser; diff --git a/src/ArduinoJson/Deserialization/JsonParserImpl.hpp b/src/ArduinoJson/Deserialization/JsonParserImpl.hpp index 3921225b..76253b25 100644 --- a/src/ArduinoJson/Deserialization/JsonParserImpl.hpp +++ b/src/ArduinoJson/Deserialization/JsonParserImpl.hpp @@ -141,8 +141,7 @@ inline bool ArduinoJson::Internals::JsonParser::parseObjectTo( template inline const char * ArduinoJson::Internals::JsonParser::parseString() { - typename TypeTraits::RemoveReference::type::String str = - _writer.startString(); + typename RemoveReference::type::String str = _writer.startString(); skipSpacesAndComments(_reader); char c = _reader.current(); diff --git a/src/ArduinoJson/DynamicJsonBuffer.hpp b/src/ArduinoJson/DynamicJsonBuffer.hpp index fc8270f0..bdbd5dd9 100644 --- a/src/ArduinoJson/DynamicJsonBuffer.hpp +++ b/src/ArduinoJson/DynamicJsonBuffer.hpp @@ -19,6 +19,7 @@ #endif namespace ArduinoJson { +namespace Internals { class DefaultAllocator { public: void* allocate(size_t size) { @@ -151,6 +152,7 @@ class DynamicJsonBufferBase Block* _head; size_t _nextBlockCapacity; }; +} #if defined(__clang__) #pragma clang diagnostic pop @@ -163,5 +165,6 @@ class DynamicJsonBufferBase // Implements a JsonBuffer with dynamic memory allocation. // You are strongly encouraged to consider using StaticJsonBuffer which is much // more suitable for embedded systems. -typedef DynamicJsonBufferBase DynamicJsonBuffer; +typedef Internals::DynamicJsonBufferBase + DynamicJsonBuffer; } diff --git a/src/ArduinoJson/JsonArray.hpp b/src/ArduinoJson/JsonArray.hpp index 3c3ff36b..2acd2a1a 100644 --- a/src/ArduinoJson/JsonArray.hpp +++ b/src/ArduinoJson/JsonArray.hpp @@ -26,7 +26,9 @@ namespace ArduinoJson { // Forward declarations class JsonObject; class JsonBuffer; +namespace Internals { class JsonArraySubscript; +} // An array of JsonVariant. // @@ -47,10 +49,10 @@ class JsonArray : public Internals::JsonPrintable, : Internals::List(buffer) {} // Gets the value at the specified index - const JsonArraySubscript operator[](size_t index) const; + const Internals::JsonArraySubscript operator[](size_t index) const; // Gets or sets the value at specified index - JsonArraySubscript operator[](size_t index); + Internals::JsonArraySubscript operator[](size_t index); // Adds the specified value at the end of the array. // @@ -97,8 +99,7 @@ class JsonArray : public Internals::JsonPrintable, // bool set(size_t index, TValue value, uint8_t decimals); // TValue = float, double template - typename TypeTraits::EnableIf::value, - bool>::type + typename Internals::EnableIf::value, bool>::type set(size_t index, T value, uint8_t decimals) { return set_impl(index, JsonVariant(value, decimals)); } diff --git a/src/ArduinoJson/JsonArraySubscript.hpp b/src/ArduinoJson/JsonArraySubscript.hpp index da9807fb..afb4dc1e 100644 --- a/src/ArduinoJson/JsonArraySubscript.hpp +++ b/src/ArduinoJson/JsonArraySubscript.hpp @@ -13,6 +13,7 @@ #endif namespace ArduinoJson { +namespace Internals { class JsonArraySubscript : public JsonVariantBase { public: FORCE_INLINE JsonArraySubscript(JsonArray& array, size_t index) @@ -47,7 +48,7 @@ class JsonArraySubscript : public JsonVariantBase { } template - FORCE_INLINE typename Internals::JsonVariantAs::type as() const { + FORCE_INLINE typename JsonVariantAs::type as() const { return _array.get(_index); } @@ -86,21 +87,6 @@ class JsonArraySubscript : public JsonVariantBase { const size_t _index; }; -#if ARDUINOJSON_ENABLE_STD_STREAM -inline std::ostream& operator<<(std::ostream& os, - const JsonArraySubscript& source) { - return source.printTo(os); -} -#endif - -inline JsonArraySubscript JsonArray::operator[](size_t index) { - return JsonArraySubscript(*this, index); -} - -inline const JsonArraySubscript JsonArray::operator[](size_t index) const { - return JsonArraySubscript(*const_cast(this), index); -} - template inline JsonArraySubscript JsonVariantSubscripts::operator[]( size_t index) { @@ -113,7 +99,23 @@ inline const JsonArraySubscript JsonVariantSubscripts::operator[]( return impl()->template as()[index]; } -} // namespace ArduinoJson +#if ARDUINOJSON_ENABLE_STD_STREAM +inline std::ostream& operator<<(std::ostream& os, + const JsonArraySubscript& source) { + return source.printTo(os); +} +#endif +} + +inline Internals::JsonArraySubscript JsonArray::operator[](size_t index) { + return Internals::JsonArraySubscript(*this, index); +} + +inline const Internals::JsonArraySubscript JsonArray::operator[]( + size_t index) const { + return Internals::JsonArraySubscript(*const_cast(this), index); +} +} #ifdef _MSC_VER #pragma warning(pop) diff --git a/src/ArduinoJson/JsonBuffer.hpp b/src/ArduinoJson/JsonBuffer.hpp index 192d8b38..26101e08 100644 --- a/src/ArduinoJson/JsonBuffer.hpp +++ b/src/ArduinoJson/JsonBuffer.hpp @@ -42,8 +42,8 @@ class JsonBuffer : Internals::NonCopyable { // TValue = const std::string&, const String&, template DEPRECATED("char* are duplicated, you don't need strdup() anymore") - typename TypeTraits::EnableIf::value, - const char *>::type strdup(const TString &src) { + typename Internals::EnableIf::value, + const char *>::type strdup(const TString &src) { return Internals::StringTraits::duplicate(src, this); } // diff --git a/src/ArduinoJson/JsonBufferBase.hpp b/src/ArduinoJson/JsonBufferBase.hpp index 08be31fb..1e771bfd 100644 --- a/src/ArduinoJson/JsonBufferBase.hpp +++ b/src/ArduinoJson/JsonBufferBase.hpp @@ -7,6 +7,7 @@ #include "Deserialization/JsonParser.hpp" namespace ArduinoJson { +namespace Internals { template class JsonBufferBase : public JsonBuffer { public: @@ -25,8 +26,8 @@ class JsonBufferBase : public JsonBuffer { // JsonArray& parseArray(TString); // TString = const std::string&, const String& template - typename TypeTraits::EnableIf::value, - JsonArray &>::type + typename Internals::EnableIf::value, + JsonArray &>::type parseArray(const TString &json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { return Internals::makeParser(that(), json, nestingLimit).parseArray(); @@ -62,8 +63,8 @@ class JsonBufferBase : public JsonBuffer { // JsonObject& parseObject(TString); // TString = const std::string&, const String& template - typename TypeTraits::EnableIf::value, - JsonObject &>::type + typename Internals::EnableIf::value, + JsonObject &>::type parseObject(const TString &json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { return Internals::makeParser(that(), json, nestingLimit).parseObject(); @@ -91,8 +92,8 @@ class JsonBufferBase : public JsonBuffer { // JsonVariant parse(TString); // TString = const std::string&, const String& template - typename TypeTraits::EnableIf::value, - JsonVariant>::type + typename Internals::EnableIf::value, + JsonVariant>::type parse(const TString &json, uint8_t nestingLimit = ARDUINOJSON_DEFAULT_NESTING_LIMIT) { return Internals::makeParser(that(), json, nestingLimit).parseVariant(); @@ -123,3 +124,4 @@ class JsonBufferBase : public JsonBuffer { } }; } +} diff --git a/src/ArduinoJson/JsonObject.hpp b/src/ArduinoJson/JsonObject.hpp index 8bd8105b..c03bfa51 100644 --- a/src/ArduinoJson/JsonObject.hpp +++ b/src/ArduinoJson/JsonObject.hpp @@ -26,6 +26,10 @@ namespace ArduinoJson { // Forward declarations class JsonArray; class JsonBuffer; +namespace Internals { +template +class JsonObjectSubscript; +} // A dictionary of JsonVariant indexed by string (char*) // @@ -50,15 +54,16 @@ class JsonObject : public Internals::JsonPrintable, // JsonObjectSubscript operator[](TKey) // TKey = const std::string&, const String& template - JsonObjectSubscript operator[](const TString& key) { - return JsonObjectSubscript(*this, key); + Internals::JsonObjectSubscript operator[]( + const TString& key) { + return Internals::JsonObjectSubscript(*this, key); } // // JsonObjectSubscript operator[](TKey) // TKey = char*, const char*, char[], const char[N], const FlashStringHelper* template - JsonObjectSubscript operator[](TString* key) { - return JsonObjectSubscript(*this, key); + Internals::JsonObjectSubscript operator[](TString* key) { + return Internals::JsonObjectSubscript(*this, key); } // Gets the value associated with the specified key. @@ -66,17 +71,19 @@ class JsonObject : public Internals::JsonPrintable, // const JsonObjectSubscript operator[](TKey) const; // TKey = const std::string&, const String& template - const JsonObjectSubscript operator[]( + const Internals::JsonObjectSubscript operator[]( const TString& key) const { - return JsonObjectSubscript(*const_cast(this), - key); + return Internals::JsonObjectSubscript( + *const_cast(this), key); } // // const JsonObjectSubscript operator[](TKey) const; // TKey = const char*, const char[N], const FlashStringHelper* template - const JsonObjectSubscript operator[](TString* key) const { - return JsonObjectSubscript(*const_cast(this), key); + const Internals::JsonObjectSubscript operator[]( + TString* key) const { + return Internals::JsonObjectSubscript( + *const_cast(this), key); } // Sets the specified key with the specified value. @@ -120,8 +127,8 @@ class JsonObject : public Internals::JsonPrintable, // TValue = float, double template DEPRECATED("Second argument is not supported anymore") - typename TypeTraits::EnableIf::value, - bool>::type + typename Internals::EnableIf::value, + bool>::type set(const TString& key, TValue value, uint8_t) { return set_impl(key, JsonVariant(value)); @@ -132,8 +139,8 @@ class JsonObject : public Internals::JsonPrintable, // TValue = float, double template DEPRECATED("Second argument is not supported anymore") - typename TypeTraits::EnableIf::value, - bool>::type + typename Internals::EnableIf::value, + bool>::type set(TString* key, TValue value, uint8_t) { return set_impl(key, JsonVariant(value)); } diff --git a/src/ArduinoJson/JsonObjectSubscript.hpp b/src/ArduinoJson/JsonObjectSubscript.hpp index ede6bdcf..6ac47637 100644 --- a/src/ArduinoJson/JsonObjectSubscript.hpp +++ b/src/ArduinoJson/JsonObjectSubscript.hpp @@ -14,6 +14,7 @@ #endif namespace ArduinoJson { +namespace Internals { template class JsonObjectSubscript @@ -35,10 +36,8 @@ class JsonObjectSubscript // TValue = bool, char, long, int, short, float, double, // std::string, String, JsonArray, JsonObject template - FORCE_INLINE - typename TypeTraits::EnableIf::value, - this_type&>::type - operator=(const TValue& src) { + FORCE_INLINE typename EnableIf::value, this_type&>::type + operator=(const TValue& src) { _object.set(_key, src); return *this; } @@ -56,7 +55,7 @@ class JsonObjectSubscript } template - FORCE_INLINE typename Internals::JsonVariantAs::type as() const { + FORCE_INLINE typename JsonVariantAs::type as() const { return _object.get(_key); } @@ -71,10 +70,8 @@ class JsonObjectSubscript // TValue = bool, char, long, int, short, float, double, RawJson, JsonVariant, // std::string, String, JsonArray, JsonObject template - FORCE_INLINE - typename TypeTraits::EnableIf::value, - bool>::type - set(const TValue& value) { + FORCE_INLINE typename EnableIf::value, bool>::type set( + const TValue& value) { return _object.set(_key, value); } // @@ -105,7 +102,8 @@ inline std::ostream& operator<<(std::ostream& os, return source.printTo(os); } #endif -} // namespace ArduinoJson +} +} #ifdef _MSC_VER #pragma warning(pop) diff --git a/src/ArduinoJson/JsonVariant.hpp b/src/ArduinoJson/JsonVariant.hpp index 415af172..8326cbe8 100644 --- a/src/ArduinoJson/JsonVariant.hpp +++ b/src/ArduinoJson/JsonVariant.hpp @@ -36,7 +36,7 @@ class JsonObject; // - a char, short, int or a long (signed or unsigned) // - a string (const char*) // - a reference to a JsonArray or JsonObject -class JsonVariant : public JsonVariantBase { +class JsonVariant : public Internals::JsonVariantBase { template friend class Internals::JsonSerializer; @@ -56,8 +56,8 @@ class JsonVariant : public JsonVariantBase { // JsonVariant(double value); // JsonVariant(float value); template - JsonVariant(T value, typename TypeTraits::EnableIf< - TypeTraits::IsFloatingPoint::value>::type * = 0) { + JsonVariant(T value, typename Internals::EnableIf< + Internals::IsFloatingPoint::value>::type * = 0) { using namespace Internals; _type = JSON_FLOAT; _content.asFloat = static_cast(value); @@ -65,8 +65,8 @@ class JsonVariant : public JsonVariantBase { template DEPRECATED("Second argument is not supported anymore") JsonVariant(T value, uint8_t, - typename TypeTraits::EnableIf< - TypeTraits::IsFloatingPoint::value>::type * = 0) { + typename Internals::EnableIf< + Internals::IsFloatingPoint::value>::type * = 0) { using namespace Internals; _type = JSON_FLOAT; _content.asFloat = static_cast(value); @@ -79,9 +79,11 @@ class JsonVariant : public JsonVariantBase { // JsonVariant(signed long) // JsonVariant(signed char) template - JsonVariant(T value, typename TypeTraits::EnableIf< - TypeTraits::IsSignedIntegral::value || - TypeTraits::IsSame::value>::type * = 0) { + JsonVariant( + T value, + typename Internals::EnableIf::value || + Internals::IsSame::value>::type * = + 0) { using namespace Internals; if (value >= 0) { _type = JSON_POSITIVE_INTEGER; @@ -96,8 +98,8 @@ class JsonVariant : public JsonVariantBase { // JsonVariant(unsigned long) template JsonVariant(T value, - typename TypeTraits::EnableIf< - TypeTraits::IsUnsignedIntegral::value>::type * = 0) { + typename Internals::EnableIf< + Internals::IsUnsignedIntegral::value>::type * = 0) { using namespace Internals; _type = JSON_POSITIVE_INTEGER; _content.asInteger = static_cast(value); @@ -110,7 +112,7 @@ class JsonVariant : public JsonVariantBase { template JsonVariant( const TChar *value, - typename TypeTraits::EnableIf::value>::type * = + typename Internals::EnableIf::value>::type * = 0) { _type = Internals::JSON_STRING; _content.asString = reinterpret_cast(value); @@ -144,14 +146,13 @@ class JsonVariant : public JsonVariantBase { // unsigned int as() const; // unsigned long as() const; template - const typename TypeTraits::EnableIf::value, T>::type + const typename Internals::EnableIf::value, T>::type as() const { return variantAsInteger(); } // bool as() const template - const typename TypeTraits::EnableIf::value, - T>::type + const typename Internals::EnableIf::value, T>::type as() const { return variantAsInteger() != 0; } @@ -159,8 +160,8 @@ class JsonVariant : public JsonVariantBase { // double as() const; // float as() const; template - const typename TypeTraits::EnableIf::value, - T>::type + const typename Internals::EnableIf::value, + T>::type as() const { return variantAsFloat(); } @@ -168,9 +169,9 @@ class JsonVariant : public JsonVariantBase { // const char* as() const; // const char* as() const; template - typename TypeTraits::EnableIf::value || - TypeTraits::IsSame::value, - const char *>::type + typename Internals::EnableIf::value || + Internals::IsSame::value, + const char *>::type as() const { return variantAsString(); } @@ -178,7 +179,7 @@ class JsonVariant : public JsonVariantBase { // std::string as() const; // String as() const; template - typename TypeTraits::EnableIf::has_append, T>::type + typename Internals::EnableIf::has_append, T>::type as() const { const char *cstr = variantAsString(); if (cstr) return T(cstr); @@ -190,9 +191,9 @@ class JsonVariant : public JsonVariantBase { // JsonArray& as const; // JsonArray& as const; template - typename TypeTraits::EnableIf< - TypeTraits::IsSame::type, - JsonArray>::value, + typename Internals::EnableIf< + Internals::IsSame::type, + JsonArray>::value, JsonArray &>::type as() const { return variantAsArray(); @@ -200,9 +201,9 @@ class JsonVariant : public JsonVariantBase { // // const JsonArray& as const; template - typename TypeTraits::EnableIf< - TypeTraits::IsSame::type, - const JsonArray>::value, + typename Internals::EnableIf< + Internals::IsSame::type, + const JsonArray>::value, const JsonArray &>::type as() const { return variantAsArray(); @@ -211,9 +212,9 @@ class JsonVariant : public JsonVariantBase { // JsonObject& as const; // JsonObject& as const; template - typename TypeTraits::EnableIf< - TypeTraits::IsSame::type, - JsonObject>::value, + typename Internals::EnableIf< + Internals::IsSame::type, + JsonObject>::value, JsonObject &>::type as() const { return variantAsObject(); @@ -222,9 +223,9 @@ class JsonVariant : public JsonVariantBase { // JsonObject& as const; // JsonObject& as const; template - typename TypeTraits::EnableIf< - TypeTraits::IsSame::type, - const JsonObject>::value, + typename Internals::EnableIf< + Internals::IsSame::type, + const JsonObject>::value, const JsonObject &>::type as() const { return variantAsObject(); @@ -232,8 +233,8 @@ class JsonVariant : public JsonVariantBase { // // JsonVariant as const; template - typename TypeTraits::EnableIf::value, - T>::type + typename Internals::EnableIf::value, + T>::type as() const { return *this; } @@ -251,23 +252,22 @@ class JsonVariant : public JsonVariantBase { // bool is() const; // bool is() const; template - typename TypeTraits::EnableIf::value, bool>::type - is() const { + typename Internals::EnableIf::value, bool>::type is() + const { return variantIsInteger(); } // // bool is() const; // bool is() const; template - typename TypeTraits::EnableIf::value, - bool>::type + typename Internals::EnableIf::value, bool>::type is() const { return variantIsFloat(); } // // bool is() const template - typename TypeTraits::EnableIf::value, bool>::type + typename Internals::EnableIf::value, bool>::type is() const { return variantIsBoolean(); } @@ -275,9 +275,9 @@ class JsonVariant : public JsonVariantBase { // bool is() const; // bool is() const; template - typename TypeTraits::EnableIf::value || - TypeTraits::IsSame::value, - bool>::type + typename Internals::EnableIf::value || + Internals::IsSame::value, + bool>::type is() const { return variantIsString(); } @@ -286,11 +286,10 @@ class JsonVariant : public JsonVariantBase { // bool is const; // bool is const; template - typename TypeTraits::EnableIf< - TypeTraits::IsSame< - typename TypeTraits::RemoveConst< - typename TypeTraits::RemoveReference::type>::type, - JsonArray>::value, + typename Internals::EnableIf< + Internals::IsSame::type>::type, + JsonArray>::value, bool>::type is() const { return variantIsArray(); @@ -300,11 +299,10 @@ class JsonVariant : public JsonVariantBase { // bool is const; // bool is const; template - typename TypeTraits::EnableIf< - TypeTraits::IsSame< - typename TypeTraits::RemoveConst< - typename TypeTraits::RemoveReference::type>::type, - JsonObject>::value, + typename Internals::EnableIf< + Internals::IsSame::type>::type, + JsonObject>::value, bool>::type is() const { return variantIsObject(); diff --git a/src/ArduinoJson/JsonVariantBase.hpp b/src/ArduinoJson/JsonVariantBase.hpp index 8c669eb5..44acf2e1 100644 --- a/src/ArduinoJson/JsonVariantBase.hpp +++ b/src/ArduinoJson/JsonVariantBase.hpp @@ -11,12 +11,14 @@ #include "Serialization/JsonPrintable.hpp" namespace ArduinoJson { +namespace Internals { template -class JsonVariantBase : public Internals::JsonPrintable, +class JsonVariantBase : public JsonPrintable, public JsonVariantCasts, public JsonVariantComparisons, public JsonVariantOr, public JsonVariantSubscripts, - public TypeTraits::JsonVariantTag {}; + public JsonVariantTag {}; +} } diff --git a/src/ArduinoJson/JsonVariantCasts.hpp b/src/ArduinoJson/JsonVariantCasts.hpp index 85a96de4..68f5bd7d 100644 --- a/src/ArduinoJson/JsonVariantCasts.hpp +++ b/src/ArduinoJson/JsonVariantCasts.hpp @@ -8,6 +8,7 @@ #include "Polyfills/attributes.hpp" namespace ArduinoJson { +namespace Internals { template class JsonVariantCasts { @@ -55,3 +56,4 @@ class JsonVariantCasts { } }; } +} diff --git a/src/ArduinoJson/JsonVariantComparisons.hpp b/src/ArduinoJson/JsonVariantComparisons.hpp index 74eeae43..cae53372 100644 --- a/src/ArduinoJson/JsonVariantComparisons.hpp +++ b/src/ArduinoJson/JsonVariantComparisons.hpp @@ -9,6 +9,7 @@ #include "TypeTraits/IsVariant.hpp" namespace ArduinoJson { +namespace Internals { template class JsonVariantComparisons { @@ -20,10 +21,8 @@ class JsonVariantComparisons { } template - friend - typename TypeTraits::EnableIf::value, - bool>::type - operator==(TComparand comparand, const JsonVariantComparisons &variant) { + friend typename EnableIf::value, bool>::type + operator==(TComparand comparand, const JsonVariantComparisons &variant) { return variant.equals(comparand); } @@ -34,10 +33,8 @@ class JsonVariantComparisons { } template - friend - typename TypeTraits::EnableIf::value, - bool>::type - operator!=(TComparand comparand, const JsonVariantComparisons &variant) { + friend typename EnableIf::value, bool>::type + operator!=(TComparand comparand, const JsonVariantComparisons &variant) { return !variant.equals(comparand); } @@ -94,7 +91,7 @@ class JsonVariantComparisons { } template - const typename Internals::JsonVariantAs::type as() const { + const typename JsonVariantAs::type as() const { return impl()->template as(); } @@ -104,18 +101,16 @@ class JsonVariantComparisons { } template - typename TypeTraits::EnableIf::has_equals, - bool>::type - equals(const TString &comparand) const { + typename EnableIf::has_equals, bool>::type equals( + const TString &comparand) const { const char *value = as(); - return Internals::StringTraits::equals(comparand, value); + return StringTraits::equals(comparand, value); } template - typename TypeTraits::EnableIf< - !TypeTraits::IsVariant::value && - !Internals::StringTraits::has_equals, - bool>::type + typename EnableIf::value && + !StringTraits::has_equals, + bool>::type equals(const TComparand &comparand) const { return as() == comparand; } @@ -140,3 +135,4 @@ class JsonVariantComparisons { } }; } +} diff --git a/src/ArduinoJson/JsonVariantImpl.hpp b/src/ArduinoJson/JsonVariantImpl.hpp index 1ebec981..31f96ce1 100644 --- a/src/ArduinoJson/JsonVariantImpl.hpp +++ b/src/ArduinoJson/JsonVariantImpl.hpp @@ -58,7 +58,7 @@ inline T JsonVariant::variantAsInteger() const { return T(~_content.asInteger + 1); case JSON_STRING: case JSON_UNPARSED: - return Polyfills::parseInteger(_content.asString); + return parseInteger(_content.asString); default: return T(_content.asFloat); } @@ -86,7 +86,7 @@ inline T JsonVariant::variantAsFloat() const { return -static_cast(_content.asInteger); case JSON_STRING: case JSON_UNPARSED: - return Polyfills::parseFloat(_content.asString); + return parseFloat(_content.asString); default: return static_cast(_content.asFloat); } @@ -106,7 +106,7 @@ inline bool JsonVariant::variantIsInteger() const { using namespace Internals; return _type == JSON_POSITIVE_INTEGER || _type == JSON_NEGATIVE_INTEGER || - (_type == JSON_UNPARSED && Polyfills::isInteger(_content.asString)); + (_type == JSON_UNPARSED && isInteger(_content.asString)); } inline bool JsonVariant::variantIsFloat() const { @@ -114,7 +114,7 @@ inline bool JsonVariant::variantIsFloat() const { return _type == JSON_FLOAT || _type == JSON_POSITIVE_INTEGER || _type == JSON_NEGATIVE_INTEGER || - (_type == JSON_UNPARSED && Polyfills::isFloat(_content.asString)); + (_type == JSON_UNPARSED && isFloat(_content.asString)); } #if ARDUINOJSON_ENABLE_STD_STREAM diff --git a/src/ArduinoJson/JsonVariantOr.hpp b/src/ArduinoJson/JsonVariantOr.hpp index 895737ba..cad5626a 100644 --- a/src/ArduinoJson/JsonVariantOr.hpp +++ b/src/ArduinoJson/JsonVariantOr.hpp @@ -8,6 +8,7 @@ #include "Polyfills/attributes.hpp" namespace ArduinoJson { +namespace Internals { template class JsonVariantOr { @@ -34,3 +35,4 @@ class JsonVariantOr { } }; } +} diff --git a/src/ArduinoJson/JsonVariantSubscripts.hpp b/src/ArduinoJson/JsonVariantSubscripts.hpp index 210f2611..279ee019 100644 --- a/src/ArduinoJson/JsonVariantSubscripts.hpp +++ b/src/ArduinoJson/JsonVariantSubscripts.hpp @@ -10,6 +10,7 @@ #include "TypeTraits/EnableIf.hpp" namespace ArduinoJson { +namespace Internals { // Forward declarations. class JsonArraySubscript; @@ -41,19 +42,18 @@ class JsonVariantSubscripts { // const JsonObjectSubscript operator[](TKey) const; // TKey = const std::string&, const String& template - FORCE_INLINE typename TypeTraits::EnableIf< - Internals::StringTraits::has_equals, - const JsonObjectSubscript >::type - operator[](const TString &key) const { + FORCE_INLINE + typename EnableIf::has_equals, + const JsonObjectSubscript >::type + operator[](const TString &key) const { return impl()->template as()[key]; } // // const JsonObjectSubscript operator[](TKey) const; // TKey = const std::string&, const String& template - FORCE_INLINE typename TypeTraits::EnableIf< - Internals::StringTraits::has_equals, - JsonObjectSubscript >::type + FORCE_INLINE typename EnableIf::has_equals, + JsonObjectSubscript >::type operator[](const TString &key) { return impl()->template as()[key]; } @@ -61,9 +61,8 @@ class JsonVariantSubscripts { // JsonObjectSubscript operator[](TKey); // TKey = const char*, const char[N], const FlashStringHelper* template - FORCE_INLINE typename TypeTraits::EnableIf< - Internals::StringTraits::has_equals, - JsonObjectSubscript >::type + FORCE_INLINE typename EnableIf::has_equals, + JsonObjectSubscript >::type operator[](const TString *key) { return impl()->template as()[key]; } @@ -71,10 +70,10 @@ class JsonVariantSubscripts { // JsonObjectSubscript operator[](TKey); // TKey = const char*, const char[N], const FlashStringHelper* template - FORCE_INLINE typename TypeTraits::EnableIf< - Internals::StringTraits::has_equals, - const JsonObjectSubscript >::type - operator[](const TString *key) const { + FORCE_INLINE + typename EnableIf::has_equals, + const JsonObjectSubscript >::type + operator[](const TString *key) const { return impl()->template as()[key]; } @@ -84,3 +83,4 @@ class JsonVariantSubscripts { } }; } +} diff --git a/src/ArduinoJson/Polyfills/ctype.hpp b/src/ArduinoJson/Polyfills/ctype.hpp index 0e0f973e..2d52703c 100644 --- a/src/ArduinoJson/Polyfills/ctype.hpp +++ b/src/ArduinoJson/Polyfills/ctype.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace Polyfills { +namespace Internals { inline bool isdigit(char c) { return '0' <= c && c <= '9'; diff --git a/src/ArduinoJson/Polyfills/isFloat.hpp b/src/ArduinoJson/Polyfills/isFloat.hpp index c89f8c4b..973b89fe 100644 --- a/src/ArduinoJson/Polyfills/isFloat.hpp +++ b/src/ArduinoJson/Polyfills/isFloat.hpp @@ -8,7 +8,7 @@ #include "./ctype.hpp" namespace ArduinoJson { -namespace Polyfills { +namespace Internals { inline bool isFloat(const char* s) { if (!s) return false; diff --git a/src/ArduinoJson/Polyfills/isInteger.hpp b/src/ArduinoJson/Polyfills/isInteger.hpp index d63fdfba..21f16689 100644 --- a/src/ArduinoJson/Polyfills/isInteger.hpp +++ b/src/ArduinoJson/Polyfills/isInteger.hpp @@ -7,7 +7,7 @@ #include "./ctype.hpp" namespace ArduinoJson { -namespace Polyfills { +namespace Internals { inline bool isInteger(const char* s) { if (!s) return false; diff --git a/src/ArduinoJson/Polyfills/math.hpp b/src/ArduinoJson/Polyfills/math.hpp index 3c631631..48773edd 100644 --- a/src/ArduinoJson/Polyfills/math.hpp +++ b/src/ArduinoJson/Polyfills/math.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace Polyfills { +namespace Internals { template bool isNaN(T x) { return x != x; diff --git a/src/ArduinoJson/Polyfills/parseFloat.hpp b/src/ArduinoJson/Polyfills/parseFloat.hpp index 54034c5c..49b0f6fc 100644 --- a/src/ArduinoJson/Polyfills/parseFloat.hpp +++ b/src/ArduinoJson/Polyfills/parseFloat.hpp @@ -9,11 +9,11 @@ #include "./math.hpp" namespace ArduinoJson { -namespace Polyfills { +namespace Internals { template inline T parseFloat(const char* s) { - typedef TypeTraits::FloatTraits traits; + typedef FloatTraits traits; typedef typename traits::mantissa_type mantissa_t; typedef typename traits::exponent_type exponent_t; diff --git a/src/ArduinoJson/Polyfills/parseInteger.hpp b/src/ArduinoJson/Polyfills/parseInteger.hpp index a1feb2aa..e8f19749 100644 --- a/src/ArduinoJson/Polyfills/parseInteger.hpp +++ b/src/ArduinoJson/Polyfills/parseInteger.hpp @@ -10,7 +10,7 @@ #include "./ctype.hpp" namespace ArduinoJson { -namespace Polyfills { +namespace Internals { template T parseInteger(const char *s) { if (!s) return 0; // NULL diff --git a/src/ArduinoJson/Serialization/FloatParts.hpp b/src/ArduinoJson/Serialization/FloatParts.hpp index aceaa638..c14e3b55 100644 --- a/src/ArduinoJson/Serialization/FloatParts.hpp +++ b/src/ArduinoJson/Serialization/FloatParts.hpp @@ -56,7 +56,7 @@ struct FloatParts { } static int16_t normalize(TFloat& value) { - typedef TypeTraits::FloatTraits traits; + typedef FloatTraits traits; int16_t powersOf10 = 0; int8_t index = sizeof(TFloat) == 8 ? 8 : 5; diff --git a/src/ArduinoJson/Serialization/JsonPrintable.hpp b/src/ArduinoJson/Serialization/JsonPrintable.hpp index 650cff54..43d413a8 100644 --- a/src/ArduinoJson/Serialization/JsonPrintable.hpp +++ b/src/ArduinoJson/Serialization/JsonPrintable.hpp @@ -29,8 +29,8 @@ template class JsonPrintable { public: template - typename TypeTraits::EnableIf::has_append, size_t>::type - printTo(Print &print) const { + typename EnableIf::has_append, size_t>::type printTo( + Print &print) const { JsonWriter writer(print); JsonSerializer >::serialize(downcast(), writer); return writer.bytesWritten(); @@ -55,8 +55,8 @@ class JsonPrintable { } template - typename TypeTraits::EnableIf::has_append, size_t>::type - printTo(TString &str) const { + typename EnableIf::has_append, size_t>::type printTo( + TString &str) const { DynamicStringBuilder sb(str); return printTo(sb); } @@ -78,14 +78,14 @@ class JsonPrintable { } template - typename TypeTraits::EnableIf::has_append, size_t>::type + typename EnableIf::has_append, size_t>::type prettyPrintTo(Print &print) const { IndentedPrint indentedPrint(print); return prettyPrintTo(indentedPrint); } template - typename TypeTraits::EnableIf::has_append, size_t>::type + typename EnableIf::has_append, size_t>::type prettyPrintTo(TString &str) const { DynamicStringBuilder sb(str); return prettyPrintTo(sb); diff --git a/src/ArduinoJson/Serialization/JsonSerializer.hpp b/src/ArduinoJson/Serialization/JsonSerializer.hpp index c431ac83..0cb537f7 100644 --- a/src/ArduinoJson/Serialization/JsonSerializer.hpp +++ b/src/ArduinoJson/Serialization/JsonSerializer.hpp @@ -9,14 +9,15 @@ namespace ArduinoJson { class JsonArray; -class JsonArraySubscript; class JsonObject; -template -class JsonObjectSubscript; class JsonVariant; namespace Internals { +class JsonArraySubscript; +template +class JsonObjectSubscript; + template class JsonSerializer { public: diff --git a/src/ArduinoJson/Serialization/JsonWriter.hpp b/src/ArduinoJson/Serialization/JsonWriter.hpp index 62027e9f..146d51dc 100644 --- a/src/ArduinoJson/Serialization/JsonWriter.hpp +++ b/src/ArduinoJson/Serialization/JsonWriter.hpp @@ -79,14 +79,14 @@ class JsonWriter { template void writeFloat(TFloat value) { - if (Polyfills::isNaN(value)) return writeRaw("NaN"); + if (isNaN(value)) return writeRaw("NaN"); if (value < 0.0) { writeRaw('-'); value = -value; } - if (Polyfills::isInfinity(value)) return writeRaw("Infinity"); + if (isInfinity(value)) return writeRaw("Infinity"); FloatParts parts(value); diff --git a/src/ArduinoJson/StaticJsonBuffer.hpp b/src/ArduinoJson/StaticJsonBuffer.hpp index c68eb712..267d9d01 100644 --- a/src/ArduinoJson/StaticJsonBuffer.hpp +++ b/src/ArduinoJson/StaticJsonBuffer.hpp @@ -7,6 +7,7 @@ #include "JsonBufferBase.hpp" namespace ArduinoJson { +namespace Internals { class StaticJsonBufferBase : public JsonBufferBase { public: @@ -90,6 +91,7 @@ class StaticJsonBufferBase : public JsonBufferBase { size_t _capacity; size_t _size; }; +} #if defined(__clang__) #pragma clang diagnostic push @@ -105,9 +107,10 @@ class StaticJsonBufferBase : public JsonBufferBase { // The template paramenter CAPACITY specifies the capacity of the buffer in // bytes. template -class StaticJsonBuffer : public StaticJsonBufferBase { +class StaticJsonBuffer : public Internals::StaticJsonBufferBase { public: - explicit StaticJsonBuffer() : StaticJsonBufferBase(_buffer, CAPACITY) {} + explicit StaticJsonBuffer() + : Internals::StaticJsonBufferBase(_buffer, CAPACITY) {} private: char _buffer[CAPACITY]; diff --git a/src/ArduinoJson/StringTraits/ArduinoStream.hpp b/src/ArduinoJson/StringTraits/ArduinoStream.hpp index 80d383db..5db0852b 100644 --- a/src/ArduinoJson/StringTraits/ArduinoStream.hpp +++ b/src/ArduinoJson/StringTraits/ArduinoStream.hpp @@ -49,11 +49,11 @@ struct ArduinoStreamTraits { }; template -struct StringTraits::type>::value>::type> +struct StringTraits< + TStream, + // match any type that is derived from Stream: + typename EnableIf< + IsBaseOf::type>::value>::type> : ArduinoStreamTraits {}; } } diff --git a/src/ArduinoJson/StringTraits/CharPointer.hpp b/src/ArduinoJson/StringTraits/CharPointer.hpp index 20864f70..a9f30f78 100644 --- a/src/ArduinoJson/StringTraits/CharPointer.hpp +++ b/src/ArduinoJson/StringTraits/CharPointer.hpp @@ -50,14 +50,13 @@ struct CharPointerTraits { static const bool has_append = false; static const bool has_equals = true; - static const bool should_duplicate = !TypeTraits::IsConst::value; + static const bool should_duplicate = !IsConst::value; }; // char*, unsigned char*, signed char* // const char*, const unsigned char*, const signed char* template -struct StringTraits::value>::type> +struct StringTraits::value>::type> : CharPointerTraits {}; } } diff --git a/src/ArduinoJson/StringTraits/StdStream.hpp b/src/ArduinoJson/StringTraits/StdStream.hpp index 3a410aeb..227c7440 100644 --- a/src/ArduinoJson/StringTraits/StdStream.hpp +++ b/src/ArduinoJson/StringTraits/StdStream.hpp @@ -48,11 +48,11 @@ struct StdStreamTraits { }; template -struct StringTraits::type>::value>::type> +struct StringTraits< + TStream, + // match any type that is derived from std::istream: + typename EnableIf::type>::value>::type> : StdStreamTraits {}; } } diff --git a/src/ArduinoJson/TypeTraits/EnableIf.hpp b/src/ArduinoJson/TypeTraits/EnableIf.hpp index c07b217f..83fc5e07 100644 --- a/src/ArduinoJson/TypeTraits/EnableIf.hpp +++ b/src/ArduinoJson/TypeTraits/EnableIf.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that return the type T if Condition is true. template diff --git a/src/ArduinoJson/TypeTraits/FloatTraits.hpp b/src/ArduinoJson/TypeTraits/FloatTraits.hpp index d7acd05e..5044807a 100644 --- a/src/ArduinoJson/TypeTraits/FloatTraits.hpp +++ b/src/ArduinoJson/TypeTraits/FloatTraits.hpp @@ -10,7 +10,7 @@ #include "../Polyfills/math.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { template struct FloatTraits {}; diff --git a/src/ArduinoJson/TypeTraits/IsArray.hpp b/src/ArduinoJson/TypeTraits/IsArray.hpp index c65d00eb..25992311 100644 --- a/src/ArduinoJson/TypeTraits/IsArray.hpp +++ b/src/ArduinoJson/TypeTraits/IsArray.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that return the type T without the const modifier template diff --git a/src/ArduinoJson/TypeTraits/IsBaseOf.hpp b/src/ArduinoJson/TypeTraits/IsBaseOf.hpp index 30e51b5d..bf24e965 100644 --- a/src/ArduinoJson/TypeTraits/IsBaseOf.hpp +++ b/src/ArduinoJson/TypeTraits/IsBaseOf.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if Derived inherits from TBase is an // integral type. diff --git a/src/ArduinoJson/TypeTraits/IsChar.hpp b/src/ArduinoJson/TypeTraits/IsChar.hpp index 8e210d76..d97cec21 100644 --- a/src/ArduinoJson/TypeTraits/IsChar.hpp +++ b/src/ArduinoJson/TypeTraits/IsChar.hpp @@ -7,7 +7,7 @@ #include "IsSame.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if T is a charater template diff --git a/src/ArduinoJson/TypeTraits/IsConst.hpp b/src/ArduinoJson/TypeTraits/IsConst.hpp index 295d03c8..512ee5ca 100644 --- a/src/ArduinoJson/TypeTraits/IsConst.hpp +++ b/src/ArduinoJson/TypeTraits/IsConst.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that return the type T without the const modifier template diff --git a/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp b/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp index 7e3d305b..e41a6824 100644 --- a/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp +++ b/src/ArduinoJson/TypeTraits/IsFloatingPoint.hpp @@ -7,7 +7,7 @@ #include "IsSame.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if T is a floating point type template diff --git a/src/ArduinoJson/TypeTraits/IsIntegral.hpp b/src/ArduinoJson/TypeTraits/IsIntegral.hpp index a319f5cc..17ae5f28 100644 --- a/src/ArduinoJson/TypeTraits/IsIntegral.hpp +++ b/src/ArduinoJson/TypeTraits/IsIntegral.hpp @@ -9,14 +9,14 @@ #include "IsUnsignedIntegral.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if T is an integral type. template struct IsIntegral { - static const bool value = TypeTraits::IsSignedIntegral::value || - TypeTraits::IsUnsignedIntegral::value || - TypeTraits::IsSame::value; + static const bool value = IsSignedIntegral::value || + IsUnsignedIntegral::value || + IsSame::value; // CAUTION: differs from std::is_integral as it doesn't include bool }; diff --git a/src/ArduinoJson/TypeTraits/IsSame.hpp b/src/ArduinoJson/TypeTraits/IsSame.hpp index bbf3ec17..06567c93 100644 --- a/src/ArduinoJson/TypeTraits/IsSame.hpp +++ b/src/ArduinoJson/TypeTraits/IsSame.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if types T and U are the same. template diff --git a/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp b/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp index 8b590087..7334eb9c 100644 --- a/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp +++ b/src/ArduinoJson/TypeTraits/IsSignedIntegral.hpp @@ -8,23 +8,21 @@ #include "IsSame.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if T is an integral type. template struct IsSignedIntegral { - static const bool value = TypeTraits::IsSame::value || - TypeTraits::IsSame::value || - TypeTraits::IsSame::value || - TypeTraits::IsSame::value || + static const bool value = + IsSame::value || IsSame::value || + IsSame::value || IsSame::value || #if ARDUINOJSON_USE_LONG_LONG - TypeTraits::IsSame::value || + IsSame::value || #endif - #if ARDUINOJSON_USE_INT64 - TypeTraits::IsSame::value || + IsSame::value || #endif - false; + false; }; } } diff --git a/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp b/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp index 0e43ab01..938423f5 100644 --- a/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp +++ b/src/ArduinoJson/TypeTraits/IsUnsignedIntegral.hpp @@ -8,23 +8,21 @@ #include "IsSame.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that returns true if T is an integral type. template struct IsUnsignedIntegral { - static const bool value = TypeTraits::IsSame::value || - TypeTraits::IsSame::value || - TypeTraits::IsSame::value || - TypeTraits::IsSame::value || + static const bool value = + IsSame::value || IsSame::value || + IsSame::value || IsSame::value || #if ARDUINOJSON_USE_LONG_LONG - TypeTraits::IsSame::value || + IsSame::value || #endif - #if ARDUINOJSON_USE_INT64 - TypeTraits::IsSame::value || + IsSame::value || #endif - false; + false; }; } } diff --git a/src/ArduinoJson/TypeTraits/IsVariant.hpp b/src/ArduinoJson/TypeTraits/IsVariant.hpp index 85a5e3fe..f8b299f7 100644 --- a/src/ArduinoJson/TypeTraits/IsVariant.hpp +++ b/src/ArduinoJson/TypeTraits/IsVariant.hpp @@ -7,7 +7,7 @@ #include "IsBaseOf.hpp" namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { class JsonVariantTag {}; diff --git a/src/ArduinoJson/TypeTraits/RemoveConst.hpp b/src/ArduinoJson/TypeTraits/RemoveConst.hpp index f9714bd3..39d4cb5a 100644 --- a/src/ArduinoJson/TypeTraits/RemoveConst.hpp +++ b/src/ArduinoJson/TypeTraits/RemoveConst.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that return the type T without the const modifier template diff --git a/src/ArduinoJson/TypeTraits/RemoveReference.hpp b/src/ArduinoJson/TypeTraits/RemoveReference.hpp index 8d5a929f..395a1288 100644 --- a/src/ArduinoJson/TypeTraits/RemoveReference.hpp +++ b/src/ArduinoJson/TypeTraits/RemoveReference.hpp @@ -5,7 +5,7 @@ #pragma once namespace ArduinoJson { -namespace TypeTraits { +namespace Internals { // A meta-function that return the type T without the reference modifier. template diff --git a/test/DynamicJsonBuffer/alloc.cpp b/test/DynamicJsonBuffer/alloc.cpp index 54b7842c..c45e6866 100644 --- a/test/DynamicJsonBuffer/alloc.cpp +++ b/test/DynamicJsonBuffer/alloc.cpp @@ -6,6 +6,8 @@ #include #include +using namespace ArduinoJson::Internals; + static bool isAligned(void* ptr) { const size_t mask = sizeof(void*) - 1; size_t addr = reinterpret_cast(ptr); diff --git a/test/DynamicJsonBuffer/no_memory.cpp b/test/DynamicJsonBuffer/no_memory.cpp index 013b1741..824d968c 100644 --- a/test/DynamicJsonBuffer/no_memory.cpp +++ b/test/DynamicJsonBuffer/no_memory.cpp @@ -5,6 +5,8 @@ #include #include +using namespace ArduinoJson::Internals; + struct NoMemoryAllocator { void* allocate(size_t) { return NULL; diff --git a/test/Misc/TypeTraits.cpp b/test/Misc/TypeTraits.cpp index 2f8e7e8c..8d730b21 100644 --- a/test/Misc/TypeTraits.cpp +++ b/test/Misc/TypeTraits.cpp @@ -5,7 +5,7 @@ #include #include -using namespace ArduinoJson::TypeTraits; +using namespace ArduinoJson::Internals; TEST_CASE("TypeTraits") { SECTION("IsBaseOf") { diff --git a/test/Polyfills/isFloat.cpp b/test/Polyfills/isFloat.cpp index 033f9154..225d5221 100644 --- a/test/Polyfills/isFloat.cpp +++ b/test/Polyfills/isFloat.cpp @@ -5,7 +5,7 @@ #include #include -using namespace ArduinoJson::Polyfills; +using namespace ArduinoJson::Internals; TEST_CASE("isFloat()") { SECTION("Input is NULL") { diff --git a/test/Polyfills/isInteger.cpp b/test/Polyfills/isInteger.cpp index 64f5937e..f0bec4ae 100644 --- a/test/Polyfills/isInteger.cpp +++ b/test/Polyfills/isInteger.cpp @@ -5,7 +5,7 @@ #include #include -using namespace ArduinoJson::Polyfills; +using namespace ArduinoJson::Internals; TEST_CASE("isInteger()") { SECTION("Null") { diff --git a/test/Polyfills/parseFloat.cpp b/test/Polyfills/parseFloat.cpp index c57bc413..362e46d6 100644 --- a/test/Polyfills/parseFloat.cpp +++ b/test/Polyfills/parseFloat.cpp @@ -5,7 +5,7 @@ #include #include -using namespace ArduinoJson::Polyfills; +using namespace ArduinoJson::Internals; template void check(const char* input, T expected) { diff --git a/test/Polyfills/parseInteger.cpp b/test/Polyfills/parseInteger.cpp index 50e5eedb..3d25bdb2 100644 --- a/test/Polyfills/parseInteger.cpp +++ b/test/Polyfills/parseInteger.cpp @@ -6,7 +6,7 @@ #include #include -using namespace ArduinoJson::Polyfills; +using namespace ArduinoJson::Internals; template void check(const char* input, T expected) { diff --git a/test/StaticJsonBuffer/startString.cpp b/test/StaticJsonBuffer/startString.cpp index 5bfce16a..282823b7 100644 --- a/test/StaticJsonBuffer/startString.cpp +++ b/test/StaticJsonBuffer/startString.cpp @@ -5,6 +5,8 @@ #include #include +using namespace ArduinoJson::Internals; + TEST_CASE("StaticJsonBuffer::startString()") { SECTION("WorksWhenBufferIsBigEnough") { StaticJsonBuffer<6> jsonBuffer;