Увеличить property_tree push_back VC2012

В Интернете было опубликовано несколько примеров, демонстрирующих, как создать массив JSON с помощью дерева свойств boost.

Основной синтаксис:

boost::property_tree::ptree array;
array.push_back(std::make_pair("", "value-1"));
array.push_back(std::make_pair("", "value-2"));

Похоже, что это не работает с Boost 1.54 и Visual Studio C++ 2012. Он отлично работает с VC 2010 и той же версии Boost.

Я получаю сообщение об ошибке: "не удалось преобразовать параметр 1 из std:: pair<_Ty1, _Ty2> в const std:: pair<_Ty1, _Ty2> &"

Будем весьма благодарны за любые предложения, которые могут возникнуть у других людей об этом.

1 ответ

ptree::push_back занимает ptree::value_type, Который не pair<key, value> но pair<key, ptree>, push_back() переходит к insert(), который копирует данное ptree (определенное с pair::second) в текущее ptree

Я бы предложил придерживаться ptree.add(), Посмотрите пятиминутный учебник, где он делает то, что вы хотите сделать с массивом узлов с одинаковыми именами

Другие вопросы по тегам