1

我想使用 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 在那里被定义为模板,它有什么问题?请帮忙!

4

1 回答 1

1

的第一个模板参数std::wstring_convert应该是一个codecvt类。wchar_t不是这样的一类。你可能想要

std::wstring_convert<convert_typeX> converterX;

如果不是,你声明convert_typeX了什么?

于 2014-06-14T19:30:53.707 回答