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

YSTest PreAlpha_b800_20170810 The YSLib Test Project

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

- 类列表
- 类索引
- 类继承关系
- 类成员

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

`#include <StaticMapping.hpp>`

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

## 静态 Public 成员函数

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

## 静态 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
static yconstfn bool | CheckInvalid (octet x, octet y=0x80) ynothrow
using | state_t = std::uint_fast8_t
static ConversionResult | st
static yconstexpr const state_t | t_data_1 []
static yconstexpr const state_t | t_data_2 [] {1, 2, 4, 4}
template<typename _tObj , typename _tIn >
static ConversionResult | Decode (_tObj &&uc, _tIn &&i, ConversionState &st) ynoexcept_spec(!FillByte(i
| 快速解码： UTF-8 。 更多...
template<typename _tObj , typename _tIn >
static ConversionResult | Decode (_tObj &&uc, _tIn &&i, ConversionState &&st) ynoexcept_spec(Decode(uc
if(YB_UNLIKELY(!FillByte(i, b))) return ConversionResult | if ((b &0x80U)==0)
auto & | code (st.Value.UCS4)
bool | res (true)
auto | trans ([&](unsigned mask){res &=(b &0xC0U)==0x80U &&(t_data_2[byte(b >> 4U)&0x3U]&byte(mask))!=0;})
auto & | type (st.Index)
| if (type==0)
| switch (type)
| Assign (uc, code)
static ConversionResult | yforward (i)

## 详细描述

### template<>
struct CHRLib::GUCSMapper< CharSet::UTF_8 >

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

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

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

## 成员类型定义说明

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

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

## 成员函数说明

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

template<typename _tObj , typename _tSeq >

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

inlinestaticprivate

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

参考 YSLib::Drawing::char32_t , 以及 ynoexcept_assert.

template<typename _tObj , typename _tSeq >

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

inlinestaticprivate

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

参考 YSLib::Drawing::char32_t , 以及 ynoexcept_assert.

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

inlinestaticprivate

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

参考 YSLib::UI::y.

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

template<typename _tObj , typename _tIn , typename _tState >

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

inlinestaticnoexcept

解码： UTF-8 。

自从
  build 599

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

参考 CHRLib::FillByte(), CHRLib::GetSequenceOf, platform_ex::Windows::Invalid, YB_ATTR_fallthrough, YB_LIKELY , 以及 YB_UNLIKELY.

函数调用图:
template<typename _tObj , typename _tIn >

static 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

template<typename _tObj , typename _tIn >

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

static

template<typename _tOut >

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

inlinestatic

自从
  build 641

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

参考 CHRLib::c, CHRLib::d, ystdex::is_undereferenceable() , 以及 yconstraint.

函数调用图:

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

inline

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

参考 platform_ex::Windows::Invalid.

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

inline

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

参考 platform_ex::Windows::Invalid.

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

inlinestatic

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

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

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

参考 NPL::x.

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

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

inline

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

参考 CHRLib_Impl_UTF8_Decode_Fill, CHRLib_Impl_UTF8_Decode_FillTransTail, CHRLib_Impl_UTF8_Decode_Tail, platform_ex::Windows::Invalid , 以及 YB_ATTR_fallthrough.

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

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

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

## 类成员变量说明

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

初始值:
{
byte b(0)

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

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 第 324 行定义.

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

static

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

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

- StaticMapping.hpp