Увеличить 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()
, Посмотрите пятиминутный учебник, где он делает то, что вы хотите сделать с массивом узлов с одинаковыми именами