Visual Studio 2012 — ошибки кодирования STL Переполнение стека

я хочу использовать codecvt для преобразования std: wstring в std :: string, вот так

#include <ostream>
#include <sstream>
#include <locale>
#include <cstdlib>
#include <codecvt>

//some additional code

typedef std::codecvt_utf8<wchar_t> convert_typeX;
std::wstring_convert<wchar_t> converterX;

Я использую vs2012, и я получаю следующие ошибки компиляции:

error C2825: '_Codecvt': must be a class or namespace when followed by '::'
error C2039: 'state_type' : is not a member of '`global namespace''

Все эти ошибки генерирует из файла xlocbuf на строке

typedef typename _Codecvt::state_type state_type;

_Codevct определен там как шаблон, что может быть не так с ним? Пожалуйста помоги!

1

Решение

Первый параметр шаблона std::wstring_convert должен быть codecvt учебный класс. wchar_t это не такой класс. Вы, вероятно, хотите

std::wstring_convert<convert_typeX> converterX;

Если нет, то, что вы объявили convert_typeX за?

1

Другие решения


По вопросам рекламы [email protected]