Я использую библиотеку Boost для реализации своего приложения. Все строковые символы в модели данных моего приложения являются широкими символами (тип wchar_t). Но в библиотеке boost некоторые классы передают только узкий char (тип char), т. е. "address boost::asio::ip::address::from_string(const char* str)
". Поэтому мне нужно сделать преобразование между std::string и std::wstring при вызове функций повышения.
ОБНОВЛЕНИЕ
Относительно функции преобразователя. Я считаю, что приведенный ниже код работает.
std::wstring wstr(L"Hello World");
const std::string nstr( wstr.begin(), wstr.end());
const std::wstring wstr2(nstr.begin(), nstr.end());