std::regex_traits::isctype
Материал из cppreference.com
< cpp | regex | regex traits
![]() |
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
bool isctype( CharT c, char_class_type f ) const; |
||
Определяет, является ли характер
c
принадлежит к классу символов, определенных f
, которая, в свою очередь, является значением, возвращаемым lookup_classname()
.Оригинал:
Determines whether the character
c
belongs to the character class identified by f
, which, in turn, is a value returned by lookup_classname()
.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Версия этой функции представлены в стандартном специализации библиотеки std::regex_traits, сначала преобразует
f
некоторым временным m
значение типа std::ctype_base::mask в реализации определенным образом, а затем пытается классифицировать характер в проникнуться языка по телефону std::use_facet<std::ctype<CharT>>(getloc()).is(m, c). Если что вернулся true, true возвращается isctype()
. В противном случае, проверяет, является ли c
равно '_'
и битовой маски f
соответствует [:w:]
классовый характер, в это�� случае true возвращается. В противном случае, false
возвращается.Оригинал:
The version of this function provided in the standard library specializations of std::regex_traits, first converts
f
to some temporary value m
of type std::ctype_base::mask in implementation-defined manner, then attempts to classify the character in the imbued locale by calling std::use_facet<std::ctype<CharT>>(getloc()).is(m, c). If that returned true, true is returned by isctype()
. Otherwise, checks whether c
equals '_'
and the bitmask f
corresponds to the character class [:w:]
, in which case true is returned. Otherwise, false
is returned.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Примечание: опубликованный стандарт сформулирован неправильно, требующие эту функцию, чтобы вернуться верно для
'_'
во всех случаях. Это LWG issue 2018 есть.Оригинал:
Note: the published standard is phrased incorrectly, requiring this function to return true for
'_'
in all cases. This is LWG issue 2018.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Содержание |
[править] Параметры
c | — | характер классифицировать
Оригинал: the character to classify Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
f | — | битовой маски получаются из lookup_classname ()
Оригинал: the bitmask obtained from lookup_classname() Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
[править] Возвращаемое значение
true если
c
классифицируются по f
, false иначе.Оригинал:
true if
c
is classified by f
, false otherwise.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
[править] Пример
Запустить этот код
#include <iostream> #include <string> #include <regex> int main() { std::regex_traits<char> t; std::string str_alnum = "alnum"; auto a = t.lookup_classname(str_alnum.begin(), str_alnum.end()); std::string str_w = "w"; // [:w:] is [:alnum:] plus '_' auto w = t.lookup_classname(str_w.begin(), str_w.end()); std::cout << std::boolalpha << t.isctype('A', w) << ' ' << t.isctype('A', a) << '\n' << t.isctype('_', w) << ' ' << t.isctype('_', a) << '\n' << t.isctype(' ', w) << ' ' << t.isctype(' ', a) << '\n'; }
Вывод:
true true true false false false
[править] См. также
получает символ класса по имени Оригинал: gets a character class by name Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (public функция-элемент) | |
[virtual] |
классифицирует символ или последовательность символов Оригинал: classifies a character or a character sequence Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. (virtual protected std::ctype функция-элемент)
|