Я пытаюсь прочитать файл XML в ptree, используя функцию read_xml, как показано ниже:
read_xml(myFile, myPtree, boost::property_tree::xml_parser::trim_whitespace);
Здесь мой файл является std::string
и myPtree это basic_ptree<std::string, std::wstring>.
Это дает мне следующую ошибку при сборке:
xml_parser_read_rapidxml.hpp(48): error C2679: binary '=' : no operator found which takes a right-hand operand of type 'std::basic_string<_Elem,_Traits,_Alloc>' (or there is no acceptable conversion)
with
[
_Elem=char,
_Traits=std::char_traits<char>,
_Alloc=std::allocator<char>
]
Любые указатели на то, что может быть причиной ошибки?
Вы можете получать сообщения, как показано, просто потому, что нет неявного преобразования из std::string
в std::wstring
В этом случае сопоставьте типы строк или попробуйте настроить basic_ptree
специализация
Поскольку вы анализируете XML, а анализатор XML поддерживает только один тип строки, он скорее всего что ты необходимость сделать ключи и типы строк данных идентичными.
Вы можете использовать строковый тип, соответствующий анализатору XML, и использовать translator_between<std::string, std::wstring>
вызвать соответствующее преобразование набора символов