Именованные требования C++: RegexTraits (начиная с C++11)
RegexTraits — это класс traits, который абстрагирует операции, необходимые для заданного типа символов, используемого в качестве параметра типа шаблона для std::basic_regex.
Требования
Пусть
-
CharT— тип символов -
X— тип RegexTraits для типаCharT -
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, представляющий локаль, используемую классом traits. | |
X::char_class_type | Тип BitmaskType, представляющий определённую классификацию символов. | |
X::length(p) | std::size_t | Возвращает: наименьшее i, для которого выполняется p[i] == 0. Сложность линейна относительно i. |
v.translate(c) | X::char_type | Возвращает: символ, такой что для любого символа d, считающегося эквивалентным c, выполняется 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) | bool | Возвращает: входит ли c в один из классов символов, обозначенных cl. |
v.value(c, I) | int | Возвращает:
|
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) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/named_req/RegexTraits