Add nullptr_t

This commit is contained in:
Benoit Blanchon
2023-07-10 16:12:36 +02:00
parent 21bf4973de
commit 1d07abddcd
3 changed files with 9 additions and 5 deletions

View File

@ -8,6 +8,8 @@
ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE ARDUINOJSON_BEGIN_PRIVATE_NAMESPACE
using nullptr_t = decltype(nullptr);
template <class T> template <class T>
T&& forward(typename remove_reference<T>::type& t) noexcept { T&& forward(typename remove_reference<T>::type& t) noexcept {
return static_cast<T&&>(t); return static_cast<T&&>(t);

View File

@ -6,6 +6,7 @@
#include <ArduinoJson/Json/JsonSerializer.hpp> #include <ArduinoJson/Json/JsonSerializer.hpp>
#include <ArduinoJson/Memory/StringBuilder.hpp> #include <ArduinoJson/Memory/StringBuilder.hpp>
#include <ArduinoJson/Polyfills/utility.hpp>
#include <ArduinoJson/Variant/JsonVariantConst.hpp> #include <ArduinoJson/Variant/JsonVariantConst.hpp>
ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE ARDUINOJSON_BEGIN_PUBLIC_NAMESPACE
@ -174,11 +175,11 @@ struct Converter<SerializedValue<T>> : private detail::VariantAttorney {
}; };
template <> template <>
struct Converter<decltype(nullptr)> : private detail::VariantAttorney { struct Converter<detail::nullptr_t> : private detail::VariantAttorney {
static void toJson(decltype(nullptr), JsonVariant dst) { static void toJson(detail::nullptr_t, JsonVariant dst) {
detail::VariantData::setNull(getData(dst), getResourceManager(dst)); detail::VariantData::setNull(getData(dst), getResourceManager(dst));
} }
static decltype(nullptr) fromJson(JsonVariantConst) { static detail::nullptr_t fromJson(JsonVariantConst) {
return nullptr; return nullptr;
} }
static bool checkJson(JsonVariantConst src) { static bool checkJson(JsonVariantConst src) {

View File

@ -7,6 +7,7 @@
#include <ArduinoJson/Configuration.hpp> #include <ArduinoJson/Configuration.hpp>
#include <ArduinoJson/Numbers/arithmeticCompare.hpp> #include <ArduinoJson/Numbers/arithmeticCompare.hpp>
#include <ArduinoJson/Polyfills/type_traits.hpp> #include <ArduinoJson/Polyfills/type_traits.hpp>
#include <ArduinoJson/Polyfills/utility.hpp>
#include <ArduinoJson/Strings/StringAdapters.hpp> #include <ArduinoJson/Strings/StringAdapters.hpp>
#include <ArduinoJson/Variant/JsonVariantVisitor.hpp> #include <ArduinoJson/Variant/JsonVariantVisitor.hpp>
@ -74,8 +75,8 @@ struct NullComparer : ComparerBase {
}; };
template <> template <>
struct Comparer<decltype(nullptr), void> : NullComparer { struct Comparer<nullptr_t, void> : NullComparer {
explicit Comparer(decltype(nullptr)) : NullComparer() {} explicit Comparer(nullptr_t) : NullComparer() {}
}; };
struct ArrayComparer : ComparerBase { struct ArrayComparer : ComparerBase {