codecvt Class
로케일 패싯으로 사용할 수 있는 개체에 설명 하는 템플릿 클래스.프로그램 내에서 문자를 인코딩하는 데 사용 되는 값의 시퀀스와 프로그램 이외의 문자를 인코딩하는 데 사용 되는 값의 시퀀스 제어 변환 수입니다.
template<class CharType, class Byte, class StateType>
class codecvt
: public locale::facet, codecvt_base {
public:
typedef CharType intern_type;
typedef Byte extern_type;
typedef StateType state_type;
explicit codecvt (size_t _Refs = 0);
result in (
StateType& _State,
const Byte *_First1,
const Byte *_Last1,
const Byte *_Next1,
CharType *_First2,
CharType *_Last2,
CharType *_Next2
);
result out (
StateType& _State,
const Elem *_First1,
const Elem *_Last1,
const Elem *_Next1,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
result unshift (
StateType& _State,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
bool always_noconv () const throw();
int max_length () const throw();
int length (
const StateType& _State,
const Byte *_First1,
const Byte *_Last1,
size_t _N2
) const throw();
int encoding () const throw();
static locale::id id;
protected:
~codecvt();
virtual result do_in (
StateType& _State,
const Byte *_First1,
const Byte *_Last1,
const Byte *_Next1,
CharType *_First2,
CharType *_Last2,
CharType *_Next2
);
virtual result do_out (
StateType& _State,
const CharType *_First1,
const CharType *_Last1,
const CharType *_Next1,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
virtual result do_unshift (
StateType& _State,
Byte *_First2,
Byte *_Last2,
Byte *_Next2
);
virtual bool do_always_noconv () const throw();
virtual int do_max_length () const throw();
virtual int do_encoding () const throw();
virtual int do_length (
const StateType& _State,
const Byte *_First1,
const Byte *_Last1,
size_t _Len2
) const throw();
};
매개 변수
CharType
프로그램 내에서 문자를 인코딩하는 데 사용 되는 형식입니다.Byte
프로그램 외부의 문자를 인코딩하는 데 사용 되는 형식입니다.StateType
내부 및 외부 문자 표현 형식 사이의 변환의 중간 상태를 나타내는 데 사용할 수 있는 형식입니다.
설명
템플릿 클래스를 사용할 수 있는 개체 설명에 로케일 면, 시퀀스의 값 형식 사이의 변환을 제어할 수 CharType 및 형식의 값 시퀀스를 Byte.클래스 StateType -변환 및 개체의 클래스를 나타냅니다. StateType 필요한 상태 정보를 변환 하는 동안 저장 합니다.
내부 인코딩 표현을 문자당 바이트 수가 정해진 보통 입력 사용 char 또는 형식 wchar_t.
모든 로캘 패싯, 정적 개체와 마찬가지로 id 초기 값 0 저장 했습니다.저장 된 값에 액세스 하려면 첫 번째 시도에서 고유한 양수 저장id.
서식 파일 버전의 do_in 및 do_out 항상 반환 codecvt_base::noconv.
표준 C++ 라이브러리는 여러 개의 명시적 특수화를 정의합니다.
template<>
codecvt<wchar_t, char, mbstate_t>
간의 변환 wchar_t 및 char 시퀀스.
template<>
codecvt<char16_t, char, mbstate_t>
간의 변환 char16_t u t F-16으로 인코딩된 시퀀스 및 char u t F-8로 인코딩된 시퀀스입니다.
template<>
codecvt<char32_t, char, mbstate_t>
간의 변환 char32_t u t F-32 (u c S-4)으로 인코딩된 시퀀스 및 char u t F-8로 인코딩된 시퀀스입니다.
생성자
생성자 클래스의 개체에 대 한 codecvt 로케일 패싯으로 변환을 처리 하는 역할을 합니다. |
형식 정의
외부 표현에 사용 되는 문자 형식입니다. |
|
내부 표현에 사용 되는 문자 형식입니다. |
|
내부 및 외부 표현 간에 변환 도중 중간 상태를 나타내는 데 사용 되는 문자 형식입니다. |
멤버 함수
변환이 수행 해야 하는지 여부를 테스트 합니다. |
|
변환이 수행 해야 하는지 여부를 테스트 하기 위해 호출 하는 가상 함수입니다. |
|
경우 테스트 하는 가상 함수 인코딩을 Byte 스트림 종속 상태 여부입니다 1.5는 Bytes 사용 및 CharTypes 생성 일정 이며, 그렇다면이 비율 값을 결정 합니다. |
|
가상 함수 호출 내부 시퀀스로 변환할 Byte일련의 외부 s CharTypes. |
|
결정 하는 가상 함수 개수 Byte외부의 지정 된 시퀀스에서 s Bytes 생성 수의 내부 이상 없습니다 CharTypes 해당 개수를 반환 하 고 Bytes. |
|
가상 함수를 하나 생성 하는 데 필요한 내부 외부 바이트 최대 반환 CharType. |
|
가상 함수 호출 내부 시퀀스로 변환할 CharTypes 외부 바이트 시퀀스입니다. |
|
가상 함수 호출을 제공 하는 Byte상태에 따라 변환에는 시퀀스의 마지막 문자를 완료 하는데 필요한 s Bytes. |
|
경우 테스트 인코딩을 Byte 스트림 종속 상태 여부입니다 1.5는 Bytes 사용 및 CharTypes 생성 일정 이며, 그렇다면이 비율 값을 결정 합니다. |
|
일련의 외부 표현을 변환 Byte일련의 내부 표현에 s CharTypes. |
|
결정 얼마나 Byte외부의 지정 된 시퀀스에서 s Bytes 생성 수의 내부 이상 없습니다 CharTypes 해당 개수를 반환 하 고 Bytes. |
|
외부의 최대 수를 반환 합니다. Bytes 내부에서 생성 하는 데 필요한 CharType. |
|
내부 시퀀스로 변환 CharType일련의 외부 s Bytes. |
|
외부 제공 Byte상태에 따라 변환에 마지막 문자를 순서 대로 완료 해야 하는 s Bytes. |
요구 사항
헤더: <locale>
네임 스페이스: std