C++ 命名需求: RegexTraits (C++11 起)
來自 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 | 返回:最小的 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 | 返回
|
v.lookup_classname(F1, F2, b) | X::char_class_type |
|
v.isctype(c, cl) | 布林 | 返回:c 是否是 cl 指定的字元類之一的成員。 |
v.value(c, I) | 整型 | 返回
|
u.imbue(loc) | X::locale_type |
|
v.getloc() | X::locale_type | 返回:v 之前使用的區域設定(如果有)。 |
[編輯] 標準庫
RegexTraits 由以下標準庫類滿足
template<> class regex_traits<char>; template<> class regex_traits<wchar_t>; |
(C++11 起) (C++11 起) |
|