Самый нативный способ - std::ctype<wchar_t>::narrow()
, но он делает чуть больше, чем std :: copy, как предложил gishu, и вам все еще нужно управлять своими собственными буферами.
Если вы не пытаетесь выполнить какой-либо перевод, а хотите получить только одну строку, вы можете сделать std::string my_string( my_wstring.begin(), my_wstring.end() )
.
Если вам нужен реальный перевод кодировки, вы можете использовать locales / codecvt или одну из библиотек из другого ответа, но я предполагаю, что это не то, что вы ищете.