Namespaces
Variants

C++ named requirements: RegexTraits (since C++11)

From cppreference.net
C++ named requirements

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 返回值:
  • 若字符序列不是有效的对照元素,则返回空字符串
  • 否则返回表示由迭代器范围 [ F1, F2 ) 指定的字符序列构成的对照元素的字符序列
v. lookup_classname ( F1, F2, b ) X :: char_class_type
  • 将迭代器范围 [ F1, F2 ) 指定的字符序列转换为可后续传递给 isctype 位掩码类型
  • lookup_classname 返回的值可按位或运算,结果值表示属于相应字符类之一的成员关系
  • b 为 true,返回的位掩码适用于不区分大小写地匹配字符
  • 若字符序列不是 X 可识别的字符类名称,则返回 0
  • 返回值应与序列中字符的大小写无关
v. isctype ( c, cl ) bool 返回值: c 是否属于 cl 指定的字符类之一
v. value ( c, I ) int 返回值:
  • 若字符 c 是基数 I 中的有效数字,则返回该数字表示的数值
  • 否则返回 - 1
u. imbue ( loc ) X :: locale_type
  • u 设置区域 loc
  • 返回值: u 先前使用的区域(如果存在)
v. getloc ( ) X :: locale_type 返回值: v 先前使用的区域(如果存在)


标准库

RegexTraits 由以下标准库类实现:

template <> class regex_traits < char > ;
template <> class regex_traits < wchar_t > ;
(自 C++11 起)
(自 C++11 起)