JsonCpp выдает LogicError при выходе из функции
У меня есть этот кусок кода:
void foo()
{
std::string r = curlcall();
std::string error;
Json::CharReaderBuilder *build = new Json::CharReaderBuilder();
Json::CharReader *read = build->newCharReader();
Json::Value *root = new Json::Value();
std::cout << "parse\n";
read->parse(&r.front(), &r.back() + 1, root, &error);
std::cout << "loop\n";
for(auto i : *root)
{
//code that pulls info from each i
}
std::cout << "delete\n";
delete root;
delete read;
delete build;
std::cout << "end\n" << error << "\n";
}
Когда я компилирую и запускаю эту программу, она выдает:
parse
loop
delete
end
Однако после этого вывода программа вылетает здесь с сообщением:
terminate called after throwing an instance of 'Json::LogicError'
what(): in Json::Value::resolveReference(key, end): requires objectValue
Aborted (core dumped)
После поиска в течение длительного времени до сих пор не могу найти, что вызывает это исключение, чтобы быть. Я не могу поймать ошибку с try/catch
или.
1 ответ
Получается, что я плох и не очищал выходной поток, поэтому текстовое сообщение, которое я использовал для отладки, не было напечатано, и ошибка возникает в следующей функции. Извините за трату времени людей.