Possible Duplicate:
How to convert pugi::char_t* to string
how can I convert pugi:char_t* type to wchar_t string?
I want to compare the result of child_value() to some utf8 string and without that convertion I cant do that.
for (pugi::xml_node_iterator it = words.begin(); it != words.end(); ++it)
{
wchar_t* wordValue = it->child("WORDVALUE").child_value();
}
this assignment return error because the right side is pugi::char_t* and the left side is whar_t*
thanks
Here’s an idea. The crude version involves modifying the library, which may break stuff in the future, but let’s begin with that:
We already have these two functions:
We also know that
pugi::char_tis eithercharorwchar_t. So all we need in order to call the conversion function onpugi::char_tis an overload, which you may add to your headers:Now you can write this:
This will work in both compiler settings thanks to the overload, and if
pugi::char_tis alreadychar, then this will be optimized out entirely (assuming of course that the encoding was already UTF-8, and not any other 8-bit encoding!).(You should also provide the overloads that take
std::stringandstd::wstringarguments to support the same magic forpugi::string_t.)If you worry about polluting the library, write your own wrapper: