Когда я хочу это сделать, я просто помещаю предупреждение #pragma (disable, 2422) вверху файла .cpp, который нарушает работу, после # include. Но если бы я был тобой, я бы попытался снять предупреждение, а не смести его под ковер. Отказ от константности может привести к неопределенному поведению.
Чтобы устранить предупреждение, попробуйте что-то вроде этого (мы используем эту функцию в нашем решении):
string wtoString( const wchar_t *ws ){
size_t bufferSize = (wcslen(ws) + 1) * sizeof(wchar_t);
char * buffer = new char[ bufferSize ];
size_t convertedChars;
wcstombs_s( &convertedChars, buffer, bufferSize, ws, _TRUNCATE);
string result(buffer);
delete[] buffer;
return result;
}
Адаптируйте его для получения const wstring &, должно быть легко, учитывая, что когда вы вызываете c_str () для wstring (), вы получаете const wchar_t *
EDIT : Теперь, когда я еще раз посмотрю на это, его можно еще улучшить, если вы используете RAII для локальной переменной буфера. На всякий случай.
РЕДАКТИРОВАТЬ : исправлен код для учета размера символов