Add meta function ConverterNeedsWriteableRef<T>

This commit is contained in:
Benoit Blanchon
2022-03-31 11:23:24 +02:00
parent 98037e5742
commit ac1d29fac0
2 changed files with 26 additions and 0 deletions

View File

@ -303,4 +303,18 @@ inline bool canConvertFromJson(VariantConstRef src, const std::string_view&) {
#endif
template <typename T>
struct ConverterNeedsWriteableRef {
protected: // <- to avoid GCC's "all member functions in class are private"
typedef char Yes[1];
typedef char No[2];
static Yes& probe(T (*f)(VariantRef));
static No& probe(T (*f)(VariantConstRef));
public:
static const bool value =
sizeof(probe(Converter<T>::fromJson)) == sizeof(Yes);
};
} // namespace ARDUINOJSON_NAMESPACE