std:: ctype_byname
|
헤더에 정의됨
<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 멤버 함수)
|
|
|
[static]
|
"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
타입에 대한 특수화
(클래스 템플릿 특수화) |