C++ named requirements: RegexTraits (since C++11)
From cppreference.net
RegexTraits 是一个特征类,用于抽象在作为 std:: basic_regex 的模板类型参数时,对给定字符类型所需的操作。
要求
给定
- CharT ,字符类型
- X ,针对 CharT 类型的 RegexTraits 类型
- u ,类型为 X 的对象
- v ,类型为 const X 的对象
- p ,类型为 const CharT * 的值
- I1, I2 ,输入迭代器
- F1, F2 ,前向迭代器
- c ,类型为 const CharT 的值
- s ,类型为 X :: string_type 的对象
- cs ,类型为 const X :: string_type 的对象
- b ,类型为 bool 的值
- I ,类型为 int 的值
- cl ,类型为 X :: char_class_type 的对象
- loc ,类型为 X :: locale_type 的对象
| 表达式 | 返回类型 | 语义 |
|---|---|---|
| X :: char_type | CharT | 用于指代字符类型 |
| X :: string_type | std:: basic_string < CharT > | |
| X :: locale_type | 表示特征类所用区域的 可复制构造 类型 | |
| X :: char_class_type | 表示特定字符分类的 位掩码类型 | |
| X :: length ( p ) | std:: size_t | 返回值:使 p [ i ] == 0 成立的最小 i 。时间复杂度与 i 呈线性关系 |
| v. translate ( c ) | X :: char_type | 返回值:对于任何被视为与 c 等价的字符 d ,满足 v. translate ( c ) == v. translate ( d ) 的字符 |
| v. translate_nocase ( c ) | X :: char_type | 返回值:对于任何在不区分大小写的情况下被视为与 c 等价的字符 C ,满足 v. translate_nocase ( c ) == v. translate_nocase ( C ) 的字符 |
| v. transform ( F1, F2 ) | X :: string_type | 返回值:迭代器范围 [ F1, F2 ) 指定的字符序列的排序键,使得若字符序列 [ G1, G2 ) 在字符序列 [ H1, H2 ) 之前排序,则 v. transform ( G1, G2 ) < v. transform ( H1, H2 ) |
| v. transform_primary ( F1, F2 ) | X :: string_type | 返回值:迭代器范围 [ F1, F2 ) 指定的字符序列的排序键,使得若在不区分大小写的情况下字符序列 [ G1, G2 ) 在字符序列 [ H1, H2 ) 之前排序,则 v. transform_primary ( G1, G2 ) < v. transform_primary ( H1, H2 ) |
| v. lookup_collatename ( F1, F2 ) | X :: string_type |
返回值:
|
| v. lookup_classname ( F1, F2, b ) | X :: char_class_type |
|
| v. isctype ( c, cl ) | bool | 返回值: c 是否属于 cl 指定的字符类之一 |
| v. value ( c, I ) | int |
返回值:
|
| u. imbue ( loc ) | X :: locale_type |
|
| v. getloc ( ) | X :: locale_type | 返回值: v 先前使用的区域(如果存在) |
标准库
RegexTraits 由以下标准库类实现:
|
template
<>
class
regex_traits
<
char
>
;
template <> class regex_traits < wchar_t > ; |
(自 C++11 起)
(自 C++11 起) |
|