std::regex_traits::isctype

来自cppreference.com
< cpp‎ | regex‎ | regex traits

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().
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
版本的标准库中提供此功能的std::regex_traits专业,首先将f一些临时性的价值m类型std::ctype_base::mask实现定义的方式,然后尝试通过调用std::use_facet<std::ctype<CharT>>(getloc()).is(m, c)分类中的字符的一脉相承的语言环境。如果返回的truetrue返回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.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
注:在公布的标准措辞不正确,需要此功能在所有情况下返回true'_'。这是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.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

c -
字符分类
原文:
the character to classify
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
f -
的位掩码从lookup_classname()
原文:
the bitmask obtained from lookup_classname()
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

true如果c分类ffalse否则.
原文:
true if c is classified by f, false otherwise.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

#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
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(公开成员函数)
[虚]
分类的字符或字符序列
原文:
classifies a character or a character sequence
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

(std::ctype 的虚受保护成员函数) [编辑]