ошибка оператора не найдена с функцией boost read_xml

Я пытаюсь прочитать файл 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>
]

Любые указатели на то, что может быть причиной ошибки?

1

Решение

Вы можете получать сообщения, как показано, просто потому, что нет неявного преобразования из std::string в std::wstring

В этом случае сопоставьте типы строк или попробуйте настроить basic_ptree специализация

Поскольку вы анализируете XML, а анализатор XML поддерживает только один тип строки, он скорее всего что ты необходимость сделать ключи и типы строк данных идентичными.

Вы можете использовать строковый тип, соответствующий анализатору XML, и использовать translator_between<std::string, std::wstring> вызвать соответствующее преобразование набора символов

1

Другие решения


По вопросам рекламы [email protected]