Namespaces
Variants

C++ named requirements: RegexTraits (since C++11)

From cppreference.net
C++ named requirements

RegexTraits — это класс характеристик, который абстрагирует операции, необходимые для заданного типа символов, когда они используются в качестве параметров шаблона для 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 , который представляет локаль, используемую классом характеристик.
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
  • Наделяет u локалью loc
  • Возвращает: Предыдущую локаль, использовавшуюся в u (если имелась)
v. getloc ( ) X :: locale_type Возвращает: Предыдущую локаль, использовавшуюся v если таковая имелась.


Стандартная библиотека

RegexTraits удовлетворяют следующие классы стандартной библиотеки:

template <> class regex_traits < char > ;
template <> class regex_traits < wchar_t > ;
(начиная с C++11)
(начиная с C++11)