我正在尝试使用以下函数将xml文件读入ptree read_xml:
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>
]
关于可能导致错误的原因的任何指示?
您可以收到如图所示的消息,仅仅是因为没有从std::string
到std::wstring
的隐式转换
在这种情况下,请匹配字符串类型或尝试调整basic_ptree
专用化
由于您是从 XML 进行分析,并且 XML 分析器仅支持一种字符串类型,因此您可能需要使键和数据字符串类型相同。
您可以使用与 XML 分析器匹配的字符串类型,并使用translator_between<std::string, std::wstring>
调用相应的字符集转换