std::regex_traits<CharT>::transform

< cpp‎ | regex‎ | regex traits
template< class ForwardIt >
string_type transform( ForwardIt first, ForwardIt last) const;

获得字符序列 [first, last) 的排序关键,满足若排序关键以 operator< 小于另一排序关键,则在当前感染的 locale 的对照顺序中,产生第一排序关键的字符序列优先于产生第二排序关键的字符序列。

例如,在设置 regex 标志 std::regex_constants::collate 时,若 traits.transform("a") <= traits.transform(c1) <= traits.transform("b") 则序列 [a-b] 会匹配某字符 c1 。注意此函数接收字符序列为参数,以适应定义为如 [[.ae.]-d] 的范围。

std::regex_traits 的标准库特化返回 std::use_facet<std::collate<CharT>>(getloc()).transform(str.data(), str.data() + str.length()) ,对于某个构造为 string_type str(first, last) 的临时字符串 str

参数

first, last - 一对遗留向前迭代器 (LegacyForwardIterator) ,确定要比较的字符序列
类型要求
-
ForwardIt 必须满足遗留向前迭代器 (LegacyForwardIterator) 的要求。

返回值

当前感染的 locale 中字符序列 [first, last) 的对照关键。

示例