Return JsonArray and JsonObject by value (closes #309)

This commit is contained in:
Benoit Blanchon
2018-07-02 09:35:21 +02:00
parent 4fe2b1100e
commit b105e6f7c4
93 changed files with 983 additions and 1091 deletions

View File

@@ -33,28 +33,26 @@ class StaticJsonDocument {
return _root.as<T>();
}
// JsonObject& to<JsonObject>()
// JsonObject to<JsonObject>()
template <typename T>
typename Internals::enable_if<Internals::is_same<T, JsonObject>::value,
JsonObject&>::type
JsonObject>::type
to() {
clear();
JsonObject* object = new (&_buffer) JsonObject(&_buffer);
if (!object) return JsonObject::invalid();
JsonObject object(&_buffer);
_root = object;
return *object;
return object;
}
// JsonArray& to<JsonArray>()
// JsonArray to<JsonArray>()
template <typename T>
typename Internals::enable_if<Internals::is_same<T, JsonArray>::value,
JsonArray&>::type
JsonArray>::type
to() {
clear();
JsonArray* array = new (&_buffer) JsonArray(&_buffer);
if (!array) return JsonArray::invalid();
JsonArray array(&_buffer);
_root = array;
return *array;
return array;
}
// JsonVariant to<JsonVariant>()