C++ 具名要求:正则表达式特征 (RegexTraits)

< cpp‎ | named req
 
 
 

正则表达式特征 (RegexTraits) 是特性类,它在用作 std::basic_regex 的模板类型形参时,对给定字符类型抽象所需的操作。

要求

给定

  • CharT ,字符类型
  • XCharT 类型的正则表达式特性 (正则表达式特征 (RegexTraits) ) 类型
  • uX 类型对象
  • vconst X 类型对象
  • pconst CharT* 类型值
  • I1, I2 ,输入迭代器
  • F1, F2 ,向前迭代器
  • cconst CharT 类型值
  • sX::string_type 类型对象
  • csconst X::string_type 类型对象
  • bbool 类型值
  • Iint 类型值
  • clX::char_class_type 类型对象
  • locX::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 返回:
  • 空字符串,若字符序列不是合法的对照元素
  • 否则为字符序列,表示由迭代器范围 [F1, F2) 所指带的字符序列组成的对照元素
v.lookup_classname(F1, F2, b) X::char_class_type
  • 转换迭代器范围所指代的字符序列 [F1, F2) 为之后能传递给 isctype位掩码类型 (BitmaskType)
  • 能将从 lookup_classname 返回的值相互逐位或;结果值表示任一对应字符类中的成员关系
  • b 为 true ,则返回的位掩码适于匹配字符而不考虑其大小写。
  • 若字符序列不是 X 所辨识的字符类名,则返回 0
  • 返回值应当独立于序列中字符的大小写。
v.isctype(c, cl) bool 返回: c 是否为 cl 所指代的字符类的成员。
v.value(c, I) int Returns:
  • 数位 cI 中表示的值,若字符 c 为底 I 中合法的数位
  • 否则为 -1
u.imbue(loc) X::locale_type
  • 以 locale loc 感染 u
  • 返回 v 先前使用的 locale ,若存在。
v.getloc() X::locale_type 返回 v 先前使用的 locale ,若存在。


标准库

下列标准库满足正则表达式特性 (正则表达式特征 (RegexTraits) ) :

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