没有操作员发现 boost read_xml 函数错误
no operator found error with boost read_xml function
我正在尝试使用 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>
]
关于可能导致错误的原因的任何指示?
您可以获得如图所示的消息,这仅仅是因为没有从 std::string
到 std::wstring
的隐式转换
在这种情况下,匹配字符串类型或尝试调整 basic_ptree
专业化
由于您是从 XML 解析的,并且 XML 解析器仅支持一种字符串类型,因此 可能 您需要 使密钥和数据字符串类型相同。
您可以使用匹配 XML 解析器的字符串类型,并使用 translator_between<std::string, std::wstring>
调用适当的字符集转换
我正在尝试使用 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>
]
关于可能导致错误的原因的任何指示?
您可以获得如图所示的消息,这仅仅是因为没有从 std::string
到 std::wstring
在这种情况下,匹配字符串类型或尝试调整 basic_ptree
专业化
由于您是从 XML 解析的,并且 XML 解析器仅支持一种字符串类型,因此 可能 您需要 使密钥和数据字符串类型相同。
您可以使用匹配 XML 解析器的字符串类型,并使用 translator_between<std::string, std::wstring>
调用适当的字符集转换