Мне нужно записать один обект QJsonObject в другой. Я создал jsonObject и мен нужно в него записать childJsonObject
std::unique_ptr<QJsonObject> jsonObject = std::unique_ptr<QJsonObject>(new QJsonObject);
for (decltype(test->numChildren()) childIndex = 0; childIndex < test->numChildren(); ++childIndex)
{
std::unique_ptr<QJsonObject> childJsonObject = serialise(test->child(childIndex));
jsonObject = childJsonObject; // тут выдает ошибку
}
ошибка:
error: C2280: 'std::unique_ptr<QJsonObject,std::default_delete<_Ty>> &std::unique_ptr<_Ty,std::default_delete<_Ty>>::operator =(const std::unique_ptr<_Ty,std::default_delete<_Ty>> &)': attempting to reference a deleted function
with
[
_Ty=QJsonObject
]
Я так понимаю, в родительский QJsonObject надо добавить массив дочерних элементов. Для этого внутри цикла нет необходимости использовать std::unique_ptr. Думаю надо сделать так:
std::unique_ptr<QJsonObject> jsonObject = std::unique_ptr<QJsonObject>(new QJsonObject);
QJsonArray children; // Массив для хранения дочерних элементов
for (decltype(test->numChildren()) childIndex = 0; childIndex < test->numChildren(); ++childIndex)
{
//Добавляем дочерний элемент в массив
children.push_back(serialise(test->child(childIndex)));
}
//Записываем массив как элемент родительского объекта, по ключу "children"
(*jsonObject )["children"] = children;
Единственное, я не знаю какой объект возвращает функция serialize, если она возвращает unique_ptr, то необходимо просто переписать
children.push_back(*serialise(test->child(childIndex)));
Извлекаем объект из указателя, и получаем заполненный массив.
Если же задача стояла просто в замене старого объекта новым, то:
*jsonObject = *serialise(test->child(childIndex));
или
jsonObject = std::move(serialise(test->child(childIndex)));
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Работаю в rhino, пытаюсь создать виджет с рекламой от гугла, но что-то идёт не так и появляется ошибка comgoogle