🎉 first draft for #661

This commit is contained in:
Niels Lohmann 2017-08-02 22:12:41 +02:00
parent 0ea0d7d860
commit d1e13d5128
No known key found for this signature in database
GPG Key ID: 7F3CEA63AE251B69

View File

@ -12066,6 +12066,31 @@ class basic_json
m_value.object->insert(first.m_it.object_iterator, last.m_it.object_iterator);
}
void update(const_reference j)
{
// implicitly convert null value to an empty object
if (is_null())
{
m_type = value_t::object;
m_value.object = create<object_t>();
assert_invariant();
}
if (JSON_UNLIKELY(not is_object()))
{
JSON_THROW(type_error::create(305, "cannot use merge with " + type_name()));
}
if (JSON_UNLIKELY(not j.is_object()))
{
JSON_THROW(type_error::create(305, "cannot use merge with " + j.type_name()));
}
for (auto it = j.begin(); it != j.end(); ++it)
{
m_value.object->emplace(it.key(), it.value());
}
}
/*!
@brief exchanges the values