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 |
返回:
|
u.imbue(loc) |
X::locale_type |
|
v.getloc() |
X::locale_type |
返回:v 先前使用的本地环境,若存在。
|
标准库
下列标准库类满足正则表达式特征 (RegexTraits) :
<tbody> </tbody> template<> class regex_traits<char>; template<> class regex_traits<wchar_t>; |
(C++11 起) (C++11 起) |
|