Преобразователь строк wstring в Boost

Я использую библиотеку Boost для реализации своего приложения. Все строковые символы в модели данных моего приложения являются широкими символами (тип wchar_t). Но в библиотеке boost некоторые классы передают только узкий char (тип char), т. е. "address boost::asio::ip::address::from_string(const char* str)". Поэтому мне нужно сделать преобразование между std::string и std::wstring при вызове функций повышения.

  1. Есть ли проблемы с производительностью из-за преобразования строк?
  2. Есть ли конвертер в Boost, который делает преобразование между std::wstring и std::string с хорошей производительностью?

ОБНОВЛЕНИЕ

Относительно функции преобразователя. Я считаю, что приведенный ниже код работает.

std::wstring wstr(L"Hello World");
const std::string nstr( wstr.begin(),  wstr.end());
const std::wstring wstr2(nstr.begin(), nstr.end());
5
задан Jeffrey 31 March 2012 в 01:44
поделиться