|
|
@@ -53,44 +53,52 @@ struct VariantConstAs<ArrayRef> {
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_integral<T>::value, T>::type variantAs(
|
|
|
- const VariantData* _data) {
|
|
|
- return _data != 0 ? _data->asIntegral<T>() : T(0);
|
|
|
+ const VariantData* data) {
|
|
|
+ return data != 0 ? data->asIntegral<T>() : T(0);
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_same<T, bool>::value, T>::type variantAs(
|
|
|
- const VariantData* _data) {
|
|
|
- return _data != 0 ? _data->asBoolean() : false;
|
|
|
+ const VariantData* data) {
|
|
|
+ return data != 0 ? data->asBoolean() : false;
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_floating_point<T>::value, T>::type variantAs(
|
|
|
- const VariantData* _data) {
|
|
|
- return _data != 0 ? _data->asFloat<T>() : T(0);
|
|
|
+ const VariantData* data) {
|
|
|
+ return data != 0 ? data->asFloat<T>() : T(0);
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_same<T, const char*>::value ||
|
|
|
is_same<T, char*>::value,
|
|
|
const char*>::type
|
|
|
-variantAs(const VariantData* _data) {
|
|
|
- return _data != 0 ? _data->asString() : 0;
|
|
|
+variantAs(const VariantData* data) {
|
|
|
+ return data != 0 ? data->asString() : 0;
|
|
|
+}
|
|
|
+
|
|
|
+template <typename T>
|
|
|
+T variantAs(VariantData* data, MemoryPool*) {
|
|
|
+ // By default use the read-only conversion.
|
|
|
+ // There are specializations for
|
|
|
+ // - ArrayRef
|
|
|
+ return variantAs<T>(data);
|
|
|
}
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_same<ArrayConstRef, T>::value, T>::type variantAs(
|
|
|
- const VariantData* _data);
|
|
|
+ const VariantData* data);
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_same<ObjectConstRef, T>::value, T>::type variantAs(
|
|
|
- const VariantData* _data);
|
|
|
+ const VariantData* data);
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<is_same<VariantConstRef, T>::value, T>::type
|
|
|
-variantAs(const VariantData* _data);
|
|
|
+variantAs(const VariantData* data);
|
|
|
|
|
|
template <typename T>
|
|
|
inline typename enable_if<IsWriteableString<T>::value, T>::type variantAs(
|
|
|
- const VariantData* _data);
|
|
|
+ const VariantData* data);
|
|
|
|
|
|
} // namespace ARDUINOJSON_NAMESPACE
|