C++ 具名要求: RegexTraits
来自cppreference.com
正则表达式特征 (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 | 表示特性类所用本地环境的可复制构造 (CopyConstructible) 类型。 | |
X::char_class_type | 表示特定字符分类的位掩码类型 (BitmaskType) 。 | |
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 | Returns:
|
u.imbue(loc) | X::locale_type |
|
v.getloc() | X::locale_type | 返回 v 先前使用的 locale ,若存在。 |
标准库
下列标准库满足正则表达式特性 (RegexTraits) :
template<> class regex_traits<char>; template<> class regex_traits<wchar_t>; |
(C++11 起) (C++11 起) |
|