regex_regex_traits
regex_regex_traits (정규식 특성)
std::regex_traits은 CharT 타입에서 동작하는 데 필요한 타입과 함수 집합을 std::basic_regex에 공급하는 타입 특성 템플릿이에요. C++11부터 사용할 수 있어요.
출처: cppreference
본문
<regex> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.
template< class CharT >
class regex_traits;
(since C++11)
타입 특성 템플릿 regex_traits은 CharT 타입에서 동작하는 데 필요한 타입과 함수 집합을 std::basic_regex에 공급해요.
많은 정규식 연산이 로케일 민감(예: std::regex_constants::collate 플래그 설정 시)하기 때문에, regex_traits 클래스는 보통 std::locale 인스턴스를 비공개 멤버로 보유해요.
표준 특수화 (Standard specializations)
표준 라이브러리는 std::regex_traits의 두 특수화를 정의해요:
- std::regex_traits<char>
- std::regex_traits<wchar_t>
이 특수화들은 std::basic_regex<char> (std::regex)와 std::basic_regex<wchar_t> (std::wregex)를 사용할 수 있게 해요. 다른 문자 타입(예: char32_t)으로 std::basic_regex을 사용하려면 사용자 제공 특성 클래스를 사용해야 해요.
멤버 타입 (Member types)
| 타입 | 정의 |
|---|---|
| char_type | CharT |
| string_type | std::basic_string<CharT> |
| locale_type | 정규식의 지역화된 동작에 사용되는 로케일 |
| char_class_type | 문자 분류의 비트마스크 타입 |
멤버 함수 (Member functions)
- length — 시퀀스의 길이 계산
- translate — 순서 비교를 위해 동등한 문자로 변환
- translate_nocase — 대소문자 구분 없는 비교를 위해 변환
- transform — 순서 비교를 위해 정렬 키 생성
- transform_primary — 순서 비교 없이 기본 키 생성
- lookup_classname — 이름으로 문자 분류 얻기
- lookup_collatename — 이름으로 collating 요소 얻기
- isctype — 문자가 문자 분류에 속하는지 확인
- value — 숫자 문자를 정수 값으로 변환
- imbue — 로케일 변경
- getloc — 현재 로케일 얻기