wstring_convert 类
一种在宽字符串和字节字符串之间执行转换的类模板 wstring_convert
。
语法
template <class Codecvt, class Elem = wchar_t>
class wstring_convert
参数
Codecvt
表示转换对象的区域设置方面。
Elem
宽字符元素类型。
备注
类模板描述一个对象,该对象用于控制类 std::basic_string<Elem>
的宽字符串对象和类 std::basic_string<char>
(也称为 std::string
)的字节字符串对象之间的转换。 类模板将类型 wide_string
和 byte_string
定义为这两种类型的同义词。 一个 Elem
值序列(存储在 wide_string
对象中)和多字节序列(存储在 byte_string
对象中)之间的转换由类 Codecvt<Elem, char, std::mbstate_t>
的对象执行,这符合标准代码转换方面 std::codecvt<Elem, char, std::mbstate_t>
的要求。
此类模板的对象会存储:
发生错误时显示的字节字符串
发生错误时显示的宽字符串
指向分配的转换对象(在销毁 wbuffer_convert 对象时释放)的指针
state_type 类型的转换状态对象
转换计数
构造函数
构造函数 | 说明 |
---|---|
wstring_convert | 构造 wstring_convert 类型的对象。 |
Typedef
类型名称 | 说明 |
---|---|
byte_string | 表示字节字符串的类型。 |
wide_string | 表示宽字符串的类型。 |
state_type | 表示转换状态的类型。 |
int_type | 表示整数的类型。 |
成员函数
成员函数 | 说明 |
---|---|
from_bytes | 将字节字符串转换为宽字符串。 |
to_bytes | 将宽字符串转换为字节字符串。 |
converted | 返回成功转换数。 |
State | 返回表示转换状态的对象。 |
要求
标头:<locale>
命名空间: std
wstring_convert::byte_string
表示字节字符串的类型。
typedef std::basic_string<char> byte_string;
备注
类型是 std::basic_string<char>
的同义词。
wstring_convert::converted
返回成功转换数。
size_t converted() const;
返回值
成功的转换数。
备注
成功的转换数存储在转换计数对象中。
wstring_convert::from_bytes
将字节字符串转换为宽字符串。
wide_string from_bytes(char Byte);
wide_string from_bytes(const char* ptr);
wide_string from_bytes(const byte_string& Bstr);
wide_string from_bytes(const char* first, const char* last);
参数
Byte
要转换的单元素字节序列。
ptr
要转换的以 null 结尾的 C 样式字符序列。
Bstr
要转换的 byte_string。
first
要转换的字符范围中的第一个字符。
last
要转换的字符范围中的最后一个字符。
返回值
由转换生成的宽字符串对象。
备注
如果转换状态对象不是使用显式值构造,请在转换开始之前将它设置为其默认值(初始转换状态)。 否则保持不变。
成功转换的输入元素的数量存储在转换计数对象中。 如果未发生转换错误,则该成员函数返回转换后的宽字符串。 否则,如果对象是使用宽字符串错误消息的初始值设定项构造的,则该成员函数返回宽字符串错误消息对象。 否则,成员函数将引发 range_error 类的对象。
wstring_convert::int_type
表示整数的类型。
typedef typename wide_string::traits_type::int_type int_type;
备注
类型是 wide_string::traits_type::int_type
的同义词。
wstring_convert::state
返回表示转换状态的对象。
state_type state() const;
返回值
转换状态对象,表示转换的状态。
注解
wstring_convert::state_type
表示转换状态的类型。
typedef typename Codecvt::state_type state_type;
注解
此类型描述一个可以表示转换状态的对象。 类型是 Codecvt::state_type
的同义词。
wstring_convert::to_bytes
将宽字符串转换为字节字符串。
byte_string to_bytes(Elem Char);
byte_string to_bytes(const Elem* Wptr);
byte_string to_bytes(const wide_string& Wstr);
byte_string to_bytes(const Elem* first, const Elem* last);
参数
Char
要转换的宽字符。
Wptr
要转换的以 null 结尾的 C 样式序列(从 wptr
开始)。
Wstr
要转换的 wide_string。
first
要转换的元素范围内的第一个元素。
last
要转换的元素范围内的最后一个元素。
备注
如果转换状态对象不是使用显式值构造,请在转换开始之前将它设置为其默认值(初始转换状态)。 否则保持不变。
成功转换的输入元素的数量存储在转换计数对象中。 如果未发生转换错误,则成员函数返回转换后的字节字符串。 否则,如果对象是使用字节字符串错误消息的初始值设定项构造的,则成员函数返回字节字符串错误消息对象。 否则,成员函数将引发 range_error 类的对象。
wstring_convert::wide_string
表示宽字符串的类型。
typedef std::basic_string<Elem> wide_string;
注解
类型是 std::basic_string<Elem>
的同义词。
wstring_convert::wstring_convert
构造 wstring_convert
类型的对象。
wstring_convert(Codecvt *Pcvt = new Codecvt);
wstring_convert(Codecvt *Pcvt, state_type _State);
wstring_convert(const byte_string& _Berr, const wide_string& Werr = wide_string());
参数
*Pcvt
用于执行转换的 Codecvt
类型的对象。
_State
表示转换状态的 state_type 类型的对象。
_Berr
用于在发生错误时显示的 byte_string。
Werr
用于在发生错误时显示的 wide_string。
备注
第一个构造函数将存储转换对象中的 Pcvt_arg