forked from bblanchon/ArduinoJson
Replace Yes
/No
with int
/char
This commit is contained in:
@ -13,14 +13,11 @@ namespace ARDUINOJSON_NAMESPACE {
|
|||||||
template <typename TBase, typename TDerived>
|
template <typename TBase, typename TDerived>
|
||||||
class is_base_of {
|
class is_base_of {
|
||||||
protected: // <- to avoid GCC's "all member functions in class are private"
|
protected: // <- to avoid GCC's "all member functions in class are private"
|
||||||
typedef char Yes[1];
|
static int probe(const TBase*);
|
||||||
typedef char No[2];
|
static char probe(...);
|
||||||
|
|
||||||
static Yes& probe(const TBase*);
|
|
||||||
static No& probe(...);
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const bool value =
|
static const bool value =
|
||||||
sizeof(probe(reinterpret_cast<TDerived*>(0))) == sizeof(Yes);
|
sizeof(probe(reinterpret_cast<TDerived*>(0))) == sizeof(int);
|
||||||
};
|
};
|
||||||
} // namespace ARDUINOJSON_NAMESPACE
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
|
@ -11,16 +11,13 @@ namespace ARDUINOJSON_NAMESPACE {
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct is_class {
|
struct is_class {
|
||||||
protected: // <- to avoid GCC's "all member functions in class are private"
|
protected: // <- to avoid GCC's "all member functions in class are private"
|
||||||
typedef char Yes[1];
|
|
||||||
typedef char No[2];
|
|
||||||
|
|
||||||
template <typename U>
|
template <typename U>
|
||||||
static Yes& probe(void (U::*)(void));
|
static int probe(void (U::*)(void));
|
||||||
template <typename>
|
template <typename>
|
||||||
static No& probe(...);
|
static char probe(...);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const bool value = sizeof(probe<T>(0)) == sizeof(Yes);
|
static const bool value = sizeof(probe<T>(0)) == sizeof(int);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ARDUINOJSON_NAMESPACE
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
|
@ -24,16 +24,13 @@ namespace ARDUINOJSON_NAMESPACE {
|
|||||||
template <typename From, typename To>
|
template <typename From, typename To>
|
||||||
struct is_convertible {
|
struct is_convertible {
|
||||||
protected: // <- to avoid GCC's "all member functions in class are private"
|
protected: // <- to avoid GCC's "all member functions in class are private"
|
||||||
typedef char Yes[1];
|
static int probe(To);
|
||||||
typedef char No[2];
|
static char probe(...);
|
||||||
|
|
||||||
static Yes& probe(To);
|
|
||||||
static No& probe(...);
|
|
||||||
|
|
||||||
static From& _from;
|
static From& _from;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const bool value = sizeof(probe(_from)) == sizeof(Yes);
|
static const bool value = sizeof(probe(_from)) == sizeof(int);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ARDUINOJSON_NAMESPACE
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
|
@ -307,15 +307,12 @@ inline bool canConvertFromJson(VariantConstRef src, const std::string_view&) {
|
|||||||
template <typename T>
|
template <typename T>
|
||||||
struct ConverterNeedsWriteableRef {
|
struct ConverterNeedsWriteableRef {
|
||||||
protected: // <- to avoid GCC's "all member functions in class are private"
|
protected: // <- to avoid GCC's "all member functions in class are private"
|
||||||
typedef char Yes[1];
|
static int probe(T (*f)(VariantRef));
|
||||||
typedef char No[2];
|
static char probe(T (*f)(VariantConstRef));
|
||||||
|
|
||||||
static Yes& probe(T (*f)(VariantRef));
|
|
||||||
static No& probe(T (*f)(VariantConstRef));
|
|
||||||
|
|
||||||
public:
|
public:
|
||||||
static const bool value =
|
static const bool value =
|
||||||
sizeof(probe(Converter<T>::fromJson)) == sizeof(Yes);
|
sizeof(probe(Converter<T>::fromJson)) == sizeof(int);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace ARDUINOJSON_NAMESPACE
|
} // namespace ARDUINOJSON_NAMESPACE
|
||||||
|
@ -17,16 +17,13 @@ class VariantAttorney {
|
|||||||
template <typename TClient>
|
template <typename TClient>
|
||||||
struct ResultOfGetData {
|
struct ResultOfGetData {
|
||||||
protected: // <- to avoid GCC's "all member functions in class are private"
|
protected: // <- to avoid GCC's "all member functions in class are private"
|
||||||
typedef char Yes[1];
|
static int probe(const VariantData*);
|
||||||
typedef char No[2];
|
static char probe(VariantData*);
|
||||||
|
|
||||||
static Yes& probe(const VariantData*);
|
|
||||||
static No& probe(VariantData*);
|
|
||||||
|
|
||||||
static TClient& client;
|
static TClient& client;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
typedef typename conditional<sizeof(probe(client.getData())) == sizeof(Yes),
|
typedef typename conditional<sizeof(probe(client.getData())) == sizeof(int),
|
||||||
const VariantData*, VariantData*>::type type;
|
const VariantData*, VariantData*>::type type;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user