我正在尝试使用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>
]
关于可能导致错误的内容的任何指针?
答案 0 :(得分:1)
您可以获取所显示的消息,因为没有从std::string
到std::wstring
的隐式转换
在这种情况下,匹配字符串类型或尝试调整basic_ptree
专业化
由于您正在从XML解析,并且XML解析器仅支持一种字符串类型,因此 使密钥和数据字符串类型相同。
您可以使用与XML解析器匹配的字符串类型,并使用translator_between<std::string, std::wstring>
来调用相应的字符集转换