首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::ctype_byname

Defined in header <locale>

template< class CharT > class ctype_byname : public std::ctype<CharT>;

std::ctype_byname is a std::ctype facet which encapsulates character classification rules of the locale specified at its construction.

Two specializations are provided by the standard library.

| Defined in header <locale> |

|:----|

| std::ctype_byname<char> | provides narrow character classification. This specialization uses table lookup for character classification |

| std::ctype_byname<wchar_t> | provides wide character classification |

Member types

Member type

Definition

mask

ctype<CharT>::mask

Member functions

(constructor)

constructs a new ctype_byname facet (public member function)

(destructor)

destroys a ctype_byname facet (protected member function)

std::ctype_byname::ctype_byname

explicit ctype_byname( const char* name, std::size_t refs = 0 );

explicit ctype_byname( const std::string& name, std::size_t refs = 0 );

(since C++11)

Constructs a new std::ctype_byname facet for a locale with name.

refs is used for resource management: if refs == 0, the implementation destroys the facet, when the last std::locale object holding it is destroyed. Otherwise, the object is not destroyed.

Parameters

name

-

the name of the locale

refs

-

the number of references that link to the facet

std::ctype_byname::~ctype_byname

protected: ~ctype_byname();

Destroys the facet.

Inherited from std::ctype<CharT>

Member types

Member type

Definition

char_type

CharT

Member objects

Member name

Type

static std::locale::id id static

id of the locale (public static member constant)

| if CharT is char, the following member of std::ctype<char> is inherited |

| static const std::size_t table_size static | size of the classification table, at least 256 (public static member constant) |

Member functions

is

invokes do_is (public member function of std::ctype)

scan_is

invokes do_scan_is (public member function of std::ctype)

scan_not

invokes do_scan_not (public member function of std::ctype)

toupper

invokes do_toupper (public member function of std::ctype)

tolower

invokes do_tolower (public member function of std::ctype)

widen

invokes do_widen (public member function of std::ctype)

narrow

invokes do_narrow (public member function of std::ctype)

| if CharT is char, the following members of std::ctype<char> are inherited |

| table | obtains the character classification table (public member function of std::ctype<char>) |

| classic_table static | obtains the "C" locale character classification table (public static member function of std::ctype<char>) |

Protected member functions

do_toupper virtual

converts a character or characters to uppercase (virtual protected member function of std::ctype)

do_tolower virtual

converts a character or characters to lowercase (virtual protected member function of std::ctype)

do_widen virtual

converts a character or characters from char to charT (virtual protected member function of std::ctype)

do_narrow virtual

converts a character or characters from charT to char (virtual protected member function of std::ctype)

| if CharT is char, the following members of std::ctype are NOT inherited |

| do_is virtual | classifies a character or a character sequence (virtual protected member function of std::ctype) |

| do_scan_is virtual | locates the first character in a sequence that conforms to given classification (virtual protected member function of std::ctype) |

| do_scan_not virtual | locates the first character in a sequence that fails given classification (virtual protected member function of std::ctype) |

Inherited from std::ctype_base

Member types

Type

Definition

mask

unspecified bitmask type (enumeration, integer type, or bitset)

Member constants

space static

the value of mask identifying whitespace character classification (public static member constant)

print static

the value of mask identifying printable character classification (public static member constant)

cntrl static

the value of mask identifying control character classification (public static member constant)

upper static

the value of mask identifying uppercase character classification (public static member constant)

lower static

the value of mask identifying lowercase character classification (public static member constant)

alpha static

the value of mask identifying alphabetic character classification (public static member constant)

digit static

the value of mask identifying digit character classification (public static member constant)

punct static

the value of mask identifying punctuation character classification (public static member constant)

xdigit static

the value of mask identifying hexadecimal digit character classification (public static member constant)

blank static

the value of mask identifying blank character classification (public static member constant)

alnum static

alpha | digit (public static member constant)

graph static

alnum | punct (public static member constant)

Notes

The explicit specialization std::ctype_byname<char> was listed as a separate entry in the header file <locale> until C++11. it was removed in C++11 as defect #1298, but it remains a required specialization, just like std::ctype_byname<wchar_t>.

Example

代码语言:javascript
复制
#include <iostream>
#include <locale>
 
int main()
{
    wchar_t c = L'\u00de'; // capital letter thorn
 
    std::locale loc("C");
 
    std::cout << "isupper('Þ', C locale) returned "
               << std::boolalpha << std::isupper(c, loc) << '\n';
 
    loc = std::locale(loc, new std::ctype_byname<wchar_t>("en_US.utf8"));
 
    std::cout << "isupper('Þ', C locale with Unicode ctype) returned "
              << std::boolalpha << std::isupper(c, loc) << '\n';
}

Output:

代码语言:javascript
复制
isupper('Þ', C locale) returned false
isupper('Þ', C locale with Unicode ctype) returned true

See also

ctype

defines character classification tables (class template)

ctype<char>

specialization of std::ctype for type char (class template specialization)

代码语言:txt
复制
 © cppreference.com

Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.

扫码关注腾讯云开发者

领取腾讯云代金券