没有操作员发现boost read_xml函数的错误

时间:2015-01-08 21:06:57

标签: c++ boost readxml ptree

我正在尝试使用read_xml函数将xml文件读入ptree,如下所示:

read_xml(myFile, myPtree, boost::property_tree::xml_parser::trim_whitespace);

此处myFile为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 个答案:

答案 0 :(得分:1)

您可以获取所显示的消息,因为没有从std::stringstd::wstring的隐式转换

在这种情况下,匹配字符串类型或尝试调整basic_ptree专业化

由于您正在从XML解析,并且XML解析器仅支持一种字符串类型,因此 使密钥和数据字符串类型相同。

您可以使用与XML解析器匹配的字符串类型,并使用translator_between<std::string, std::wstring>来调用相应的字符集转换