YSTest: CHRLib 命名空间参考

YSTest PreAlpha_b400_20130424 The YSLib Test Project

- 首页
- 相关页面
- 模块
- 命名空间
- 类
- 文件

- 命名空间列表
- 命名空间成员

全部 类 命名空间 文件 函数 变量 类型定义 枚举 枚举值 友元 宏定义 组 页
命名空间 | 类 | 类型定义 | 枚举 | 函数 | 变量
CHRLib 命名空间参考

## 命名空间

namespace | CharSet

## 类

struct | ConversionState
| 编码转换状态。 更多...
class | GUCS2Mapper
| 静态编码映射模板及 Unicode 编码特化。 更多...
struct | GUCS2Mapper< CharSet::UTF_8 >
struct | GUCS2Mapper< CharSet::UTF_16BE >
struct | GUCS2Mapper< CharSet::UTF_16LE >

## 类型定义

typedef char16_t | ucs2_t
| UCS-2 字符类型。
typedef char32_t | ucs4_t
| UCS-4 字符类型。
typedef std::char_traits < ucs4_t >::int_type | ucsint_t
| UCS 整数类型。

## 枚举

enum | ConversionResult
| 编码转换结果。 更多...

## 函数

ucs2_t | FetchBiCharBE (const char *c_ptr)
| 取 c_ptr 指向的大端序双字节字符。
ucs2_t | FetchBiCharLE (const char *c_ptr)
| 取 c_ptr 指向的小端序双字节字符。
yconstfn std::uint_fast8_t & | GetCountOf (ConversionState &st)
yconstfn ucsint_t & | GetWideOf (ConversionState &st)
yconstfn byte * | GetSequenceOf (ConversionState &st)
template<typename _type >
yconstfn _type & | GetCountOf (_type &st)
| 一般类型计数。
YF_API size_t | FetchFixedCharWidth (Encoding)
| 取指定固定编码的固定字符宽度。
YF_API size_t | FetchMaxCharWidth (Encoding)
| 取指定编码的最大字符宽度。
YF_API size_t | FetchMaxVariantCharWidth (Encoding)
| 取指定变长编码的最大字符宽度。
template<typename _tChar >
yconstfn bool | IsASCII (_tChar c)
| 判断整数类型字符是否为 ASCII 字符。
template<typename _tChar >
yconstfn char | ToASCII (_tChar c)
| 任意整数类型字符转换为 ASCII 字符。
YF_API size_t | UCToMBC (char *, const ucs2_t &, Encoding)
| 按指定编码转换 UCS-2 字符中字符为字符串表示的多字节字符，返回转换的字节数。
YF_API size_t | MBCSToUCS2 (ucs2_t *, const char *, Encoding=CS_Default)
| 按指定编码转换 MBCS 字符串为 UTF-16LE 字符串，返回转换的串长。
YF_API size_t | UCS2ToMBCS (char *, const ucs2_t *, Encoding=CS_Default)
| 按指定编码转换 UTF-16LE 字符串为 MBCS 字符串，返回转换的串长。
YF_API size_t | UCS4ToUCS2 (ucs2_t *, const ucs4_t *)
| 转换 UCS-4 字符串为 UCS-2 字符串，返回转换的串长。
template<class _tDst , class _tSrc >
_tDst | GetMBCSOf (const _tSrc &src, Encoding enc=CS_Default)
| 取指定编码的多字节字符串。
YF_API char * | strdup (const ucs2_t *, Encoding=CS_Default)
| 复制 UCS-2LE 字符串为多字节字符串。
YF_API ucs2_t * | ucsdup (const char *, Encoding=CS_Default)
| 复制多字节字符串为 UCS-2/UTF-16LE 字符串。
YF_API ucs2_t * | ucsdup (const ucs2_t *)
| 复制 UCS-2 字符串。
YF_API ucs2_t * | ucsdup (const ucs4_t *)
| 复制 UCS-4 字符串为 UCS-2 字符串。
template<typename _tIn , typename _fConv >
ConversionResult | ConvertCharacter (_fConv f, ucs2_t &uc, _tIn &&it, ConversionState &&st)
template<typename _tIn , typename _fConv >
ConversionResult | ConvertCharacter (_fConv f, _tIn &&it, ConversionState &&st)
template<typename _tIn , typename _tState >
bool | FillByte (_tIn &i, _tState &st)
| 以输入迭代器指向内容填充有效输入迭代器指定的字节。
YF_API ConversionResult | MBCToUC (ucs2_t &, const char *&, Encoding, ConversionState &&={})
| 按指定编码和转换状态转换字符串中字符为 UCS-2 字符，返回转换的字节数。
ConversionResult | MBCToUC (ucs2_t &uc, const char *&c, Encoding enc, ConversionState &st)
YF_API ConversionResult | MBCToUC (ucs2_t &, std::FILE *, Encoding, ConversionState &&={})
| 按指定编码和转换状态转换字符流中字符为 UCS-2 字符，返回转换的字节数。
ConversionResult | MBCToUC (ucs2_t &uc, std::FILE *fp, Encoding enc, ConversionState &st)
YF_API ConversionResult | MBCToUC (const char *&, Encoding, ConversionState &&={})
| 按指定编码和转换状态返回转换字符为 UCS-2 字符的字节数。
ConversionResult | MBCToUC (const char *&c, Encoding enc, ConversionState &st)
YF_API ConversionResult | MBCToUC (std::FILE *, Encoding, ConversionState &&={})
ConversionResult | MBCToUC (std::FILE *fp, Encoding enc, ConversionState &st)
template<Encoding , typename... _tParams>
yconstfn ConversionResult | UCS2Mapper_Map (_tParams &&...)
| 取映射函数。
template<Encoding _vEnc, typename _tDst , typename _tSrc , typename _tState >
yconstfn ConversionResult | UCS2Mapper_Map (_tDst &&d, _tSrc &&s, _tState &&st, decltype(&GUCS2Mapper< _vEnc >::template Map< _tDst, _tSrc, _tState >)={})
template<Encoding _vEnc, typename _tDst , typename _tSrc >
yconstfn byte | UCS2Mapper_InverseMap (_tDst, _tSrc)
template<Encoding _vEnc, typename _tDst >
yconstfn byte | UCS2Mapper_InverseMap (_tDst &&d, const ucs2_t &s, decltype(&GUCS2Mapper< _vEnc >::template InverseMap< _tDst >)={})
template<Encoding _vEnc, typename _tIn , typename _tState >
yconstexpr ConversionResult | UCS2Mapper (ucs2_t &uc, _tIn &&i, _tState &&st)
template<Encoding _vEnc, typename _tIn , typename _tState >
yconstexpr ConversionResult | UCS2Mapper (_tIn &&i, _tState &&st)
template<Encoding _vEnc>
byte | UCS2Mapper (char *d, const ucs2_t &s)

## 变量

yconstexpr Encoding | CS_Default = CharSet::UTF_8
| 默认字符编码。

## 类型定义说明

typedef char16_t CHRLib::ucs2_t

UCS-2 字符类型。

在文件 chrdef.h 第 54 行定义.

typedef char32_t CHRLib::ucs4_t

UCS-4 字符类型。

在文件 chrdef.h 第 55 行定义.

typedef std::char_traits<ucs4_t>::int_type CHRLib::ucsint_t

UCS 整数类型。

在文件 chrdef.h 第 56 行定义.

## 枚举类型说明

enum CHRLib::ConversionResult

编码转换结果。

自从
  build 273

在文件 chrmap.h 第 74 行定义.

## 函数说明

template<typename _tIn , typename _fConv >

ConversionResult CHRLib::ConvertCharacter | ( | _fConv | f,
|  | ucs2_t & | uc,
|  | _tIn && | it,
|  | ConversionState && | st
| ) |  |

在文件 Convert.hpp 第 38 行定义.

参考自 YSLib::Text::TextFileBuffer::GetIterator(),YSLib::Text::TextFileBuffer::GetPosition(),MBCSToUCS2(),MBCToUC() , 以及 YSLib::Text::TextFileBuffer::operator[]().

这是这个函数的调用关系图:
template<typename _tIn , typename _fConv >

ConversionResult CHRLib::ConvertCharacter | ( | _fConv | f,
|  | _tIn && | it,
|  | ConversionState && | st
| ) |  |

在文件 Convert.hpp 第 45 行定义.

ucs2_t CHRLib::FetchBiCharBE | ( | const char * | c_ptr | ) |

inline

取 c_ptr 指向的大端序双字节字符。

前置条件
  断言： `c_ptr` 。

在文件 chrmap.h 第 50 行定义.

参考 yconstraint.

ucs2_t CHRLib::FetchBiCharLE | ( | const char * | c_ptr | ) |

inline

取 c_ptr 指向的小端序双字节字符。

前置条件
  断言： `c_ptr` 。

在文件 chrmap.h 第 62 行定义.

参考 yconstraint.

YF_API size_t CHRLib::FetchFixedCharWidth | ( | Encoding |  | ) |

取指定固定编码的固定字符宽度。

返回
  未定义编码或变长编码返回 0 ，否则为指定编码中每个字符占用的字节数。

注解
  UTF-16 视为 UCS-2 。

自从
  build 273

在文件 chrmap.cpp 第 35 行定义.

参考 CHRLib::CharSet::csASCII,CHRLib::CharSet::csUCS4,CHRLib::CharSet::csUnicode,CHRLib::CharSet::csUTF16,CHRLib::CharSet::csUTF16BE,CHRLib::CharSet::csUTF16LE,CHRLib::CharSet::csUTF32,CHRLib::CharSet::csUTF32BE , 以及 CHRLib::CharSet::csUTF32LE.

参考自 FetchMaxCharWidth().

这是这个函数的调用关系图:

YF_API size_t CHRLib::FetchMaxCharWidth | ( | Encoding |  | ) |

取指定编码的最大字符宽度。

返回
  未定义编码返回 0 ，否则为指定编码中每个字符最大可能占用的字节数。

注解
  UTF-16 视为 UCS-2 。

自从
  build 273

在文件 chrmap.cpp 第 57 行定义.

参考 FetchFixedCharWidth() , 以及 FetchMaxVariantCharWidth().

函数调用图:

YF_API size_t CHRLib::FetchMaxVariantCharWidth | ( | Encoding |  | ) |

取指定变长编码的最大字符宽度。

返回
  未定义编码或固定编码返回 0 ，否则为指定编码中每个字符最大可能占用的字节数。

注解
  UTF-16 视为 UCS-2 。

自从
  build 273

在文件 chrmap.cpp 第 65 行定义.

参考 CHRLib::CharSet::csGB18030,CHRLib::CharSet::csGBK , 以及 CHRLib::CharSet::csUTF8.

参考自 FetchMaxCharWidth().

这是这个函数的调用关系图:
template<typename _tIn , typename _tState >

bool CHRLib::FillByte | ( | _tIn & | i,
|  | _tState & | st
| ) |  |

inline

以输入迭代器指向内容填充有效输入迭代器指定的字节。

自从
  build 273

在文件 smap.hpp 第 43 行定义.

参考 GetCountOf(),GetSequenceOf(),ystdex::is_undereferenceable(),YB_UNLIKELY , 以及 yunseq().

参考自 CHRLib::GUCS2Mapper< CharSet::UTF_8 >::Map(),GUCS2Mapper< CharSet::GBK >::Map(),CHRLib::GUCS2Mapper< CharSet::UTF_16BE >::Map() , 以及 CHRLib::GUCS2Mapper< CharSet::UTF_16LE >::Map().

函数调用图:

这是这个函数的调用关系图:

yconstfn std::uint_fast8_t& CHRLib::GetCountOf | ( | ConversionState & | st | ) |

在文件 chrmap.h 第 107 行定义.

参考 CHRLib::ConversionState::Count.

参考自 FillByte(),YSLib::Text::TextFileBuffer::GetIterator(),YSLib::Text::TextFileBuffer::GetPosition(),CHRLib::GUCS2Mapper< CharSet::UTF_8 >::Map(),GUCS2Mapper< CharSet::GBK >::Map(),CHRLib::GUCS2Mapper< CharSet::UTF_16BE >::Map(),CHRLib::GUCS2Mapper< CharSet::UTF_16LE >::Map() , 以及 YSLib::Text::TextFileBuffer::operator[]().

这是这个函数的调用关系图:
template<typename _type >

yconstfn _type& CHRLib::GetCountOf | ( | _type & | st | ) |

一般类型计数。

自从
  build 273

在文件 chrmap.h 第 129 行定义.

template<class _tDst , class _tSrc >

_tDst CHRLib::GetMBCSOf | ( | const _tSrc & | src,
|  | Encoding | enc = `CS_Default`
| ) |  |

取指定编码的多字节字符串。

自从
  build 305

在文件 chrproc.h 第 156 行定义.

参考 UCS2ToMBCS().

函数调用图:

yconstfn byte* CHRLib::GetSequenceOf | ( | ConversionState & | st | ) |

在文件 chrmap.h 第 117 行定义.

参考 CHRLib::ConversionState::Sequence , 以及 CHRLib::ConversionState::Value.

参考自 FillByte(),CHRLib::GUCS2Mapper< CharSet::UTF_8 >::Map(),GUCS2Mapper< CharSet::GBK >::Map(),CHRLib::GUCS2Mapper< CharSet::UTF_16BE >::Map() , 以及 CHRLib::GUCS2Mapper< CharSet::UTF_16LE >::Map().

这是这个函数的调用关系图:

yconstfn ucsint_t& CHRLib::GetWideOf | ( | ConversionState & | st | ) |

在文件 chrmap.h 第 112 行定义.

参考 CHRLib::ConversionState::Value , 以及 CHRLib::ConversionState::Wide.

template<typename _tChar >

yconstfn bool CHRLib::IsASCII | ( | _tChar | c | ) |

判断整数类型字符是否为 ASCII 字符。

注解
  截取低 7 位。

在文件 chrproc.h 第 50 行定义.

YF_API size_t CHRLib::MBCSToUCS2 | ( | ucs2_t * | ,
|  | const char * | ,
|  | Encoding | = `CS_Default`
| ) |  |

按指定编码转换 MBCS 字符串为 UTF-16LE 字符串，返回转换的串长。

前置条件
  断言： 指针参数非空 。

自从
  build 291

YF_API ConversionResult CHRLib::MBCToUC | ( | ucs2_t & | ,
|  | const char *& | ,
|  | Encoding | ,
|  | ConversionState && | = `{}`
| ) |  |

按指定编码和转换状态转换字符串中字符为 UCS-2 字符，返回转换的字节数。

自从
  build 291

参考自 MBCToUC(),YSLib::TextFile::ReadChar() , 以及 YSLib::TextFile::SkipChar().

这是这个函数的调用关系图:

ConversionResult CHRLib::MBCToUC | ( | ucs2_t & | uc,
|  | const char *& | c,
|  | Encoding | enc,
|  | ConversionState & | st
| ) |  |

inline

在文件 chrproc.h 第 75 行定义.

参考 MBCToUC().

函数调用图:

YF_API ConversionResult CHRLib::MBCToUC | ( | ucs2_t & | ,
|  | std::FILE * | ,
|  | Encoding | ,
|  | ConversionState && | = `{}`
| ) |  |

按指定编码和转换状态转换字符流中字符为 UCS-2 字符，返回转换的字节数。

前置条件
  断言：指针参数非空。

自从
  build 291

ConversionResult CHRLib::MBCToUC | ( | ucs2_t & | uc,
|  | std::FILE * | fp,
|  | Encoding | enc,
|  | ConversionState & | st
| ) |  |

inline

在文件 chrproc.h 第 89 行定义.

参考 MBCToUC().

函数调用图:

YF_API ConversionResult CHRLib::MBCToUC | ( | const char *& | ,
|  | Encoding | ,
|  | ConversionState && | = `{}`
| ) |  |

按指定编码和转换状态返回转换字符为 UCS-2 字符的字节数。

自从
  build 291

ConversionResult CHRLib::MBCToUC | ( | const char *& | c,
|  | Encoding | enc,
|  | ConversionState & | st
| ) |  |

inline

在文件 chrproc.h 第 102 行定义.

参考 MBCToUC().

函数调用图:

YF_API ConversionResult CHRLib::MBCToUC | ( | std::FILE * | ,
|  | Encoding | ,
|  | ConversionState && | = `{}`
| ) |  |

前置条件
  断言：指针参数非空。

ConversionResult CHRLib::MBCToUC | ( | std::FILE * | fp,
|  | Encoding | enc,
|  | ConversionState & | st
| ) |  |

inline

在文件 chrproc.h 第 111 行定义.

参考 MBCToUC().

函数调用图:

YF_API char* CHRLib::strdup | ( | const ucs2_t * | ,
|  | Encoding | = `CS_Default`
| ) |  |

复制 UCS-2LE 字符串为多字节字符串。

前置条件
  断言： 指针参数非空 。

注解
  空间由 std::free 释放。

自从
  build 305

template<typename _tChar >

yconstfn char CHRLib::ToASCII | ( | _tChar | c | ) |

任意整数类型字符转换为 ASCII 字符。

注解
  截取低 7 位。

在文件 chrproc.h 第 61 行定义.

template<Encoding _vEnc, typename _tIn , typename _tState >

yconstexpr ConversionResult CHRLib::UCS2Mapper | ( | ucs2_t & | uc,
|  | _tIn && | i,
|  | _tState && | st
| ) |  |

在文件 smap.hpp 第 264 行定义.

template<Encoding _vEnc, typename _tIn , typename _tState >

yconstexpr ConversionResult CHRLib::UCS2Mapper | ( | _tIn && | i,
|  | _tState && | st
| ) |  |

在文件 smap.hpp 第 270 行定义.

template<Encoding _vEnc>

byte CHRLib::UCS2Mapper | ( | char * | d,
|  | const ucs2_t & | s
| ) |  |

在文件 smap.hpp 第 276 行定义.

参考 yconstraint.

template<Encoding _vEnc, typename _tDst , typename _tSrc >

yconstfn byte CHRLib::UCS2Mapper_InverseMap | ( | _tDst | ,
|  | _tSrc |
| ) |  |

在文件 smap.hpp 第 249 行定义.

template<Encoding _vEnc, typename _tDst >

yconstfn byte CHRLib::UCS2Mapper_InverseMap | ( | _tDst && | d,
|  | const ucs2_t & | s,
|  | decltype &<>::<> | _tDst = `{}`
| ) |  |

在文件 smap.hpp 第 255 行定义.

template<Encoding , typename... _tParams>

yconstfn ConversionResult CHRLib::UCS2Mapper_Map | ( | _tParams && | ... | ) |

取映射函数。

自从
  build 273

在文件 smap.hpp 第 235 行定义.

template<Encoding _vEnc, typename _tDst , typename _tSrc , typename _tState >

yconstfn ConversionResult CHRLib::UCS2Mapper_Map | ( | _tDst && | d,
|  | _tSrc && | s,
|  | _tState && | st,
|  | decltype(&GUCS2Mapper< _vEnc >::template Map< _tDst, _tSrc, _tState >) | = `{}`
| ) |  |

在文件 smap.hpp 第 241 行定义.

YF_API size_t CHRLib::UCS2ToMBCS | ( | char * | ,
|  | const ucs2_t * | ,
|  | Encoding | = `CS_Default`
| ) |  |

按指定编码转换 UTF-16LE 字符串为 MBCS 字符串，返回转换的串长。

前置条件
  断言： 指针参数非空 。

自从
  build 291

YF_API size_t CHRLib::UCS4ToUCS2 | ( | ucs2_t * | ,
|  | const ucs4_t * |
| ) |  |

转换 UCS-4 字符串为 UCS-2 字符串，返回转换的串长。

前置条件
  断言： 指针参数非空 。

YF_API ucs2_t* CHRLib::ucsdup | ( | const char * | ,
|  | Encoding | = `CS_Default`
| ) |  |

复制多字节字符串为 UCS-2/UTF-16LE 字符串。

前置条件
  断言： 指针参数非空 。

注解
  空间由 std::free 释放。

自从
  build 291

在文件 chrproc.cpp 第 172 行定义.

参考 MBCSToUCS2(),YB_LIKELY , 以及 yconstraint.

函数调用图:

YF_API ucs2_t* CHRLib::ucsdup | ( | const ucs2_t * |  | ) |

复制 UCS-2 字符串。

前置条件
  断言： 指针参数非空 。

注解
  空间由 std::free 释放。

YF_API ucs2_t* CHRLib::ucsdup | ( | const ucs4_t * |  | ) |

复制 UCS-4 字符串为 UCS-2 字符串。

前置条件
  断言： 指针参数非空 。

注解
  空间由 std::free 释放。

YF_API size_t CHRLib::UCToMBC | ( | char * | ,
|  | const ucs2_t & | ,
|  | Encoding |
| ) |  |

按指定编码转换 UCS-2 字符中字符为字符串表示的多字节字符，返回转换的字节数。

前置条件
  断言： 指针参数非空 。

自从
  build 305

## 变量说明

yconstexpr Encoding CHRLib::CS_Default = CharSet::UTF_8

默认字符编码。

自从
  build 287

在文件 chrmap.h 第 42 行定义.