跳到主要内容

C++ 命名要求:RegexTraits (自 C++11 起)

RegexTraits 是一个特性类,它抽象了作为 std::basic_regex 的模板类型参数时,给定字符类型所需的操作。

要求

给定

  • CharT,一个字符类型
  • X,一个类型 CharTRegexTraits 类型
  • 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_typeCharT用于指代字符类型。
X::string_typestd::basic_string<CharT>
X::locale_type一个 可复制构造的 类型,表示特性类使用的区域设置。
X::char_class_type一个 位掩码类型,表示特定的字符分类。
X::length(p)std::size_t返回:最小的 i,使得 p[i] == 0。复杂度与 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返回
 * 如果字符序列不是有效的整理元素,则为空字符串
 * 否则为代表由迭代器范围 [F1, F2) 指定的整理元素的字符序列
v.lookup_classname(F1, F2, b)X::char_class_type* 将迭代器范围 [F1, F2) 指定的字符序列转换为 位掩码类型 的值,该值随后可以传递给 isctype 位掩码类型
* 从 lookup_classname 返回的值可以进行按位或运算;结果值表示在相应字符类中的成员资格
* 如果 btrue,则返回的位掩码适合不区分大小写地匹配字符。
* 如果字符序列不是 X 识别的字符类的名称,则返回 0
* 返回的值应独立于序列中字符的大小写。
v.isctype(c, cl)bool返回:c 是否是 cl 指定的字符类之一的成员。
v.value(c, I)int返回
 * 如果字符 c 是基数 I 中的有效数字,则返回数字 c 在基数 I 中表示的值
 * 否则为 -1
u.imbue(loc)X::locale_type* 用 locale loc 浸润 u
* 返回:u 之前使用的区域设置(如果有)
v.getloc()X::locale_type返回:v 之前使用的区域设置(如果有)。

标准库

以下标准库类满足 RegexTraits

C++ 命名要求:RegexTraits (自 C++11 起)

RegexTraits 是一个特性类,它抽象了作为 std::basic_regex 的模板类型参数时,给定字符类型所需的操作。

要求

给定

  • CharT,一个字符类型
  • X,一个类型 CharTRegexTraits 类型
  • 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_typeCharT用于指代字符类型。
X::string_typestd::basic_string<CharT>
X::locale_type一个 可复制构造的 类型,表示特性类使用的区域设置。
X::char_class_type一个 位掩码类型,表示特定的字符分类。
X::length(p)std::size_t返回:最小的 i,使得 p[i] == 0。复杂度与 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返回
 * 如果字符序列不是有效的整理元素,则为空字符串
 * 否则为代表由迭代器范围 [F1, F2) 指定的整理元素的字符序列
v.lookup_classname(F1, F2, b)X::char_class_type* 将迭代器范围 [F1, F2) 指定的字符序列转换为 位掩码类型 的值,该值随后可以传递给 isctype 位掩码类型
* 从 lookup_classname 返回的值可以进行按位或运算;结果值表示在相应字符类中的成员资格
* 如果 btrue,则返回的位掩码适合不区分大小写地匹配字符。
* 如果字符序列不是 X 识别的字符类的名称,则返回 0
* 返回的值应独立于序列中字符的大小写。
v.isctype(c, cl)bool返回:c 是否是 cl 指定的字符类之一的成员。
v.value(c, I)int返回
 * 如果字符 c 是基数 I 中的有效数字,则返回数字 c 在基数 I 中表示的值
 * 否则为 -1
u.imbue(loc)X::locale_type* 用 locale loc 浸润 u
* 返回:u 之前使用的区域设置(如果有)
v.getloc()X::locale_type返回:v 之前使用的区域设置(如果有)。

标准库

以下标准库类满足 RegexTraits