Spec-Zone.ru › C++

Именованные требования 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 Возвращает:
  • пустую строку, если последовательность символов не является допустимым элементом сортировки
  • в противном случае — последовательность символов, представляющую элемент сортировки, состоящий из последовательности символов, обозначенной диапазоном итераторов [F1, F2)
v.lookup_classname(F1, F2, b) X::char_class_type
  • Преобразует последовательность символов, обозначенную диапазоном итераторов [F1, F2), в значение типа BitmaskType, которое впоследствии можно передать в isctype
  • Значения, возвращённые из lookup_classname, можно объединять побитовой операцией ИЛИ; результирующее значение обозначает принадлежность к любому из соответствующих классов символов
  • Если b имеет значение true, возвращаемая битовая маска подходит для сопоставления символов без учёта регистра.
  • Возвращает 0, если последовательность символов не является именем класса символов, распознаваемого X.
  • Возвращаемое значение не должно зависеть от регистра символов в последовательности.
v.isctype(c, cl) bool Возвращает: входит ли c в один из классов символов, обозначенных cl.
v.value(c, I) int Возвращает:
  • значение, представленное цифрой c в системе счисления с основанием I, если символ c является допустимой цифрой в системе счисления с основанием I
  • -1 в противном случае
u.imbue(loc) X::locale_type
  • Устанавливает локаль loc для u
  • Возвращает: предыдущую локаль, если таковая использовалась u
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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API