forked from bblanchon/ArduinoJson
Added support for enum
s in as<T>()
and is<T>()
(fixes #1256)
This commit is contained in:
@ -57,6 +57,12 @@ inline typename enable_if<is_integral<T>::value, T>::type variantAs(
|
||||
return data != 0 ? data->asIntegral<T>() : T(0);
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename enable_if<is_enum<T>::value, T>::type variantAs(
|
||||
const VariantData* data) {
|
||||
return data != 0 ? static_cast<T>(data->asIntegral<int>()) : T();
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
inline typename enable_if<is_same<T, bool>::value, T>::type variantAs(
|
||||
const VariantData* data) {
|
||||
|
@ -101,6 +101,11 @@ class VariantRefBase {
|
||||
return variantIsNull(_data);
|
||||
}
|
||||
#endif
|
||||
// bool is<enum>() const;
|
||||
template <typename T>
|
||||
FORCE_INLINE typename enable_if<is_enum<T>::value, bool>::type is() const {
|
||||
return variantIsInteger<int>(_data);
|
||||
}
|
||||
|
||||
FORCE_INLINE bool isNull() const {
|
||||
return variantIsNull(_data);
|
||||
|
Reference in New Issue
Block a user