Namespaces
Variants

std:: ctype_byname

From cppreference.net
헤더에 정의됨 <locale>
template < class CharT >
class ctype_byname : public std:: ctype < CharT > ;

std::ctype_byname 는 생성 시 지정된 로캘의 문자 분류 규칙을 캡슐화하는 std::ctype 패싯입니다.

목차

특수화

표준 라이브러리는 다음과 같은 특수화를 제공함을 보장합니다:

헤더 파일에 정의됨 <locale>
std :: ctype_byname < char > 좁은 문자 분류 제공 (문자 분류에 테이블 조회 사용)
std :: ctype_byname < wchar_t > 넓은 문자 분류 제공

중첩 타입

유형 정의
mask typename std:: ctype < CharT > :: mask

멤버 함수

(constructor)
새로운 ctype_byname 패싯을 생성합니다
(public member function)
(destructor)
ctype_byname 패싯을 파괴합니다
(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 ) ;
(C++11 이후)

지정된 name 을 가진 로캘에 대한 새로운 std::ctype_byname 패싯을 생성합니다.

refs 는 리소스 관리에 사용됩니다: refs == 0 인 경우, 구현은 이 패싯을 포함하는 마지막 std::locale 객체가 소멸될 때 패싯을 파괴합니다. 그렇지 않으면 객체는 파괴되지 않습니다.

매개변수

name - 로캘의 이름
refs - 패싯에 연결된 참조 횟수

std::ctype_byname:: ~ctype_byname

protected :
~ctype_byname ( ) ;

페이셋을 파괴합니다.

std:: ctype <CharT>로부터 상속됨 ( CharT char 가 아닌 경우에만)

중첩 타입

타입 정의
char_type CharT

데이터 멤버

멤버 설명
std::locale::id id [static] 패싯(facet) 의 식별자

멤버 함수

do_is 호출
( std::ctype<CharT> 의 public 멤버 함수)
do_scan_is 호출
( std::ctype<CharT> 의 public 멤버 함수)
do_scan_not 호출
( std::ctype<CharT> 의 public 멤버 함수)
do_toupper 호출
( std::ctype<CharT> 의 public 멤버 함수)
do_tolower 호출
( std::ctype<CharT> 의 public 멤버 함수)
do_widen 호출
( std::ctype<CharT> 의 public 멤버 함수)
do_narrow 호출
( std::ctype<CharT> 의 public 멤버 함수)

보호된 멤버 함수

[virtual]
문자나 문자들을 대문자로 변환
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
문자나 문자들을 소문자로 변환
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
char 에서 CharT 로 문자나 문자들을 변환
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
CharT 에서 char 로 문자나 문자들을 변환
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
문자나 문자 시퀀스를 분류
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
주어진 분류에 맞는 첫 번째 문자를 시퀀스에서 찾음
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
주어진 분류에 맞지 않는 첫 번째 문자를 시퀀스에서 찾음
( std::ctype<CharT> 의 virtual protected 멤버 함수)

std:: ctype<char> 로부터 상속됨 ( CharT char 인 경우에만)

중첩 타입

타입 정의
char_type char

데이터 멤버

멤버 설명
std::locale::id id [static] 패싯 의 식별자
const std:: size_t table_size [static] 분류 테이블의 크기, 최소 256

멤버 함수

문자 분류 테이블을 얻음
( std::ctype <char> 의 public 멤버 함수)
"C" 로케일 문자 분류 테이블을 얻음
( std::ctype <char> 의 public static 멤버 함수)
문자나 문자 시퀀스를 분류 테이블을 사용하여 분류함
( std::ctype <char> 의 public 멤버 함수)
주어진 분류에 맞는 첫 번째 문자를 시퀀스에서 찾음, 분류 테이블 사용
( std::ctype <char> 의 public 멤버 함수)
주어진 분류에 맞지 않는 첫 번째 문자를 시퀀스에서 찾음, 분류 테이블 사용
( std::ctype <char> 의 public 멤버 함수)
do_toupper 를 호출함
( std::ctype<CharT> 의 public 멤버 함수)
do_tolower 를 호출함
( std::ctype<CharT> 의 public 멤버 함수)
do_widen 를 호출함
( std::ctype<CharT> 의 public 멤버 함수)
do_narrow 를 호출함
( std::ctype<CharT> 의 public 멤버 함수)

보호된 멤버 함수

[virtual]
문자나 문자들을 대문자로 변환함
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
문자나 문자들을 소문자로 변환함
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
char 에서 CharT 로 문자나 문자들을 변환함
( std::ctype<CharT> 의 virtual protected 멤버 함수)
[virtual]
CharT 에서 char 로 문자나 문자들을 변환함
( std::ctype<CharT> 의 virtual protected 멤버 함수)

std:: ctype_base 로부터 상속됨

중첩 타입

타입 정의
mask 미지정 BitmaskType 타입 (열거형, 정수 타입, 또는 비트셋)

멤버 상수

space
[static]
mask 의 값으로 공백 문자 분류를 식별함
(public static member constant)
print
[static]
mask 의 값으로 출력 가능 문자 분류를 식별함
(public static member constant)
cntrl
[static]
mask 의 값으로 제어 문자 분류를 식별함
(public static member constant)
upper
[static]
mask 의 값으로 대문자 문자 분류를 식별함
(public static member constant)
lower
[static]
mask 의 값으로 소문자 문자 분류를 식별함
(public static member constant)
alpha
[static]
mask 의 값으로 알파벳 문자 분류를 식별함
(public static member constant)
digit
[static]
mask 의 값으로 숫자 문자 분류를 식별함
(public static member constant)
punct
[static]
mask 의 값으로 구두점 문자 분류를 식별함
(public static member constant)
xdigit
[static]
mask 의 값으로 16진수 숫자 문자 분류를 식별함
(public static member constant)
blank
[static] (C++11)
mask 의 값으로 공백 문자 분류를 식별함
(public static member constant)
alnum
[static]
alpha | digit
(public static member constant)
graph
[static]
alnum | punct
(public static member constant)

참고 사항

std :: ctype_byname < char > <locale> 개요에서 명시적 특수화로 잘못 선언되었으며, LWG 이슈 1298 의 해결에 따라 선언이 제거되었지만, std :: ctype_byname < wchar_t > 와 마찬가지로 필수 특수화로 남아 있습니다.

예제

#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';
}

출력:

isupper('Þ', C locale) returned false
isupper('Þ', C locale with Unicode ctype) returned true

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 16 C++98 명시적 특수화 정의에서 std :: ctype_byname < char >
의 이름과 매개변수 목록을 잘못 지정함 do_narrow
수정됨
LWG 616 C++98 정의에서 typename 디스앰비게이터가 누락됨 mask 추가됨

참고 항목

문자 분류 테이블을 정의함
(클래스 템플릿)
std::ctype char 타입에 대한 특수화
(클래스 템플릿 특수화)