YSTest: CHRLib::GUCSMapper< CharSet::UTF_8 >结构体 参考

YSTest PreAlpha_b900_20201012 The YSLib Test Project

Public 类型 | Public 成员函数 | 静态 Public 成员函数 | Public 属性 | 静态 Public 属性 | 静态 Private 成员函数 | 所有成员列表
CHRLib::GUCSMapper< CharSet::UTF_8 >结构体 参考

`#include <StaticMapping.hpp>`

类 CHRLib::GUCSMapper< CharSet::UTF_8 > 继承关系图:
[图例]
CHRLib::GUCSMapper< CharSet::UTF_8 > 的协作图:
[图例]

## Public 类型

using | state_t = std::uint_fast8_t

## Public 成员函数

if(YB_UNLIKELY(!FillByte(i, b))) return ConversionResult | if ((b &byte(0x80U))==byte(0))
auto & | code (st.Value.UCS4)
bool | res (true)
auto | trans ([&](unsigned mask) ynothrow{ res &=(b &byte(0xC0U))==byte(0x80U) &&(t_data_2[size_t(b) >> 4U &0x3U] &mask) !=0;})
auto & | type (st.Index)
| if (type==0)
| switch (type)
| Assign (uc, code)
static YB_ATTR_nodiscard ConversionResult | yforward (i)

## 静态 Public 成员函数

YB_ATTR_nodiscard static YB_STATELESS yconstfn bool | IsInvalid (octet x) ynothrow
| 检查 UTF-8 文本序列中非法字节。 更多...
template<typename _tObj , typename _tIn , typename _tState >
static YB_ATTR_nodiscard ConversionResult | Decode (_tObj &&uc, _tIn &&i, _tState &&st) ynoexcept(noexcept(GetSequenceOf(st)) &&noexcept(GetIndexOf(st)) &&noexcept(!FillByte(i, st)))
| 解码： UTF-8 。 更多...
template<typename _tObj , typename _tIn >
static YB_ATTR_nodiscard ConversionResult | Decode (_tObj &&uc, _tIn &&i, ConversionState &st) ynoexcept_spec(!FillByte(i
| 快速解码： UTF-8 。 更多...
template<typename _tObj , typename _tIn >
static YB_ATTR_nodiscard ConversionResult | Decode (_tObj &&uc, _tIn &&i, ConversionState &&st) ynoexcept_spec(Decode(uc
template<typename _tOut >
static YB_ATTR_nodiscard size_t | Encode (_tOut d, char32_t c) ynothrow

## Public 属性

static YB_ATTR_nodiscard ConversionResult | st

## 静态 Public 属性

static yconstexpr const state_t | t_data_1 []
static yconstexpr const state_t | t_data_2 [] {1, 2, 4, 4}

## 静态 Private 成员函数

template<typename _tObj , typename _tSeq >
static void | Assign1 (_tObj &uc, const _tSeq &seq) ynothrow
template<typename _tObj , typename _tSeq >
static void | Assign2 (_tObj &uc, const _tSeq &seq) ynothrow
YB_ATTR_nodiscard static YB_STATELESS yconstfn bool | CheckInvalid (octet x, octet y=0x80) ynothrow

## 详细描述

警告
  使用 UCS-2 时， 4 字节代码点可能溢出。

参见
  参考规范： RFC 3629 ，见 http://tools.ietf.org/html/rfc3629 。

在文件 StaticMapping.hpp 第 192 行定义.

## 成员类型定义说明

## ◆ state_t

using CHRLib::GUCSMapper< CharSet::UTF_8 >::state_t = std::uint_fast8_t

在文件 StaticMapping.hpp 第 328 行定义.

## 成员函数说明

## ◆ Assign()

CHRLib::GUCSMapper< CharSet::UTF_8 >::Assign | ( | uc | ,
|  | code |
| ) |  |

## ◆ Assign1()

template<typename _tObj , typename _tSeq >

static void CHRLib::GUCSMapper< CharSet::UTF_8 >::Assign1 | ( | _tObj & | uc,
|  | const _tSeq & | seq
| ) |  |

inlinestaticprivate

在文件 StaticMapping.hpp 第 201 行定义.

引用了 YSLib::Drawing::char32_t , 以及 ynoexcept_assert.

## ◆ Assign2()

template<typename _tObj , typename _tSeq >

static void CHRLib::GUCSMapper< CharSet::UTF_8 >::Assign2 | ( | _tObj & | uc,
|  | const _tSeq & | seq
| ) |  |

inlinestaticprivate

在文件 StaticMapping.hpp 第 211 行定义.

引用了 YSLib::Drawing::char32_t , 以及 ynoexcept_assert.

## ◆ CheckInvalid()

YB_ATTR_nodiscard static YB_STATELESS yconstfn bool CHRLib::GUCSMapper< CharSet::UTF_8 >::CheckInvalid | ( | octet | x,
|  | octet | y = `0x80`
| ) |  |

inlinestaticprivate

在文件 StaticMapping.hpp 第 221 行定义.

引用了 x , 以及 YSLib::UI::y.

## ◆ code()

auto& CHRLib::GUCSMapper< CharSet::UTF_8 >::code | ( | st.Value. | UCS4 | ) |

## ◆ Decode() [1/3]

template<typename _tObj , typename _tIn , typename _tState >

static YB_ATTR_nodiscard ConversionResult CHRLib::GUCSMapper< CharSet::UTF_8 >::Decode | ( | _tObj && | uc,
|  | _tIn && | i,
|  | _tState && | st
| ) |  | &&

inlinestaticnoexcept

解码： UTF-8 。

自从
  build 599

在文件 StaticMapping.hpp 第 243 行定义.

引用了 CHRLib::FillByte(), CHRLib::GetSequenceOf, YSLib::i, platform_ex::Windows::Invalid, YB_ATTR_fallthrough, YB_LIKELY , 以及 YB_UNLIKELY.

函数调用图:

## ◆ Decode() [2/3]

template<typename _tObj , typename _tIn >

static YB_ATTR_nodiscard ConversionResult CHRLib::GUCSMapper< CharSet::UTF_8 >::Decode | ( | _tObj && | uc,
|  | _tIn && | i,
|  | ConversionState && | st
| ) |  |

static

## ◆ Decode() [3/3]

template<typename _tObj , typename _tIn >

static YB_ATTR_nodiscard ConversionResult CHRLib::GUCSMapper< CharSet::UTF_8 >::Decode | ( | _tObj && | uc,
|  | _tIn && | i,
|  | ConversionState & | st
| ) |  |

static

快速解码： UTF-8 。

参见
  https://github.com/miloyip/rapidjson/blob/master/include/rapidjson/encodings.h 。

自从
  build 599

## ◆ Encode()

template<typename _tOut >

static YB_ATTR_nodiscard size_t CHRLib::GUCSMapper< CharSet::UTF_8 >::Encode | ( | _tOut | d,
|  | char32_t | c
| ) |  |

inlinestatic

自从
  build 641

在文件 StaticMapping.hpp 第 414 行定义.

引用了 CHRLib::c, CHRLib::d, ystdex::is_undereferenceable(), platform::l , 以及 YB_VerifyIterator.

函数调用图:

## ◆ if() [1/2]

if (YB_UNLIKELY(!FillByte(i, b))) return ConversionResult CHRLib::GUCSMapper< CharSet::UTF_8 >::if | ( | (b &byte(0x80U)) | = `= byte(0)` | ) |

inline

在文件 StaticMapping.hpp 第 314 行定义.

引用了 platform_ex::Windows::Invalid.

## ◆ if() [2/2]

CHRLib::GUCSMapper< CharSet::UTF_8 >::if | ( | type | = `= 0` | ) |

inline

在文件 StaticMapping.hpp 第 356 行定义.

## ◆ IsInvalid()

YB_ATTR_nodiscard static YB_STATELESS yconstfn bool CHRLib::GUCSMapper< CharSet::UTF_8 >::IsInvalid | ( | octet | x | ) |

inlinestatic

检查 UTF-8 文本序列中非法字节。

注解
  包括： C0 、 C1 、 F5 至 FF 。

在文件 StaticMapping.hpp 第 232 行定义.

引用了 x.

## ◆ res()

bool CHRLib::GUCSMapper< CharSet::UTF_8 >::res | ( | true |  | ) |

## ◆ switch()

CHRLib::GUCSMapper< CharSet::UTF_8 >::switch | ( | type |  | ) |

inline

在文件 StaticMapping.hpp 第 366 行定义.

## ◆ trans()

auto CHRLib::GUCSMapper< CharSet::UTF_8 >::trans | ( | [&] (unsigned mask) ynothrow{ res &=(b &byte(0xC0U))==byte(0x80U) &&(t_data_2[size_t(b) >> 4U &0x3U] &mask) !=0;} |  | ) |

## ◆ type()

auto& CHRLib::GUCSMapper< CharSet::UTF_8 >::type | ( | st. | Index | ) |

## ◆ yforward()

static YB_ATTR_nodiscard ConversionResult CHRLib::GUCSMapper< CharSet::UTF_8 >::yforward | ( | i |  | ) |

引用了 YSLib::i , 以及 yforward.

## 类成员变量说明

## ◆ st

static YB_ATTR_nodiscard ConversionResult CHRLib::GUCSMapper< CharSet::UTF_8 >::st

初始值:
{
byte b

在文件 StaticMapping.hpp 第 308 行定义.

## ◆ t_data_1

yconstexpr const state_t CHRLib::GUCSMapper< CharSet::UTF_8 >::t_data_1[]

static

初始值:
{
8, 8, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3,
11, 6, 6, 6, 5, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8
}

在文件 StaticMapping.hpp 第 330 行定义.

## ◆ t_data_2

yconstexpr const state_t CHRLib::GUCSMapper< CharSet::UTF_8 >::t_data_2[] {1, 2, 4, 4}

static

在文件 StaticMapping.hpp 第 336 行定义.

该结构体的文档由以下文件生成:

- StaticMapping.hpp