std::codecvt<InternT,ExternT,StateT>:: unshift, do_unshift
|
헤더 파일에 정의됨
<locale>
|
||
|
public
:
result unshift
(
StateT
&
state, ExternT
*
to, ExternT
*
to_end,
|
(1) | |
|
protected
:
virtual
result do_unshift
(
StateT
&
state, ExternT
*
to, ExternT
*
to_end,
|
(2) | |
do_unshift
멤버 함수를 호출합니다.
codecvt
패싯이 나타내는 인코딩이 상태 종속적이고,
state
가 초기 시프트 상태가 아닌 변환 상태를 나타내는 경우, 초기 시프트 상태로 돌아가기 위해 필요한 문자들을 기록합니다. 문자들은 첫 번째 요소가
to
가 가리키는 문자 배열에 기록됩니다. 최대
to_end
-
to
개의 문자만 기록됩니다.
to_next
매개변수는 기록된 마지막 문자 다음 위치를 가리키도록 갱신됩니다.
목차 |
반환값
std::codecvt_base::result 타입의 값으로, 다음과 같은 성공 상태를 나타냅니다:
ok
|
모든 필요한 문자가 기록되었습니다. state 는 이제 초기 시프트 상태를 나타냅니다 |
partial
|
출력 버퍼에 공간이 충분하지 않습니다. to_next == to_end |
error
|
지정되지 않은 오류가 발생했습니다 |
noconv
|
인코딩이 상태 독립적이며, 종료 시퀀스가 필요하지 않습니다 |
참고 사항
이 함수는 std::basic_filebuf::close() 에 의해 호출되며, 상태 종속 멀티바이트 문자 시퀀스를 종료하는 다른 상황에서도 호출됩니다.
예제
|
이 섹션은 불완전합니다
이유: 예시가 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 수정된 동작 |
|---|---|---|---|
| LWG 305 | C++98 |
std::
codecvt
<
wchar_t
,
char
,
std::
mbstate_t
>
::
do_unshift
어떤 문자도 쓰지 않아야 했음 |
요구되지 않음 |
| LWG 380 | C++98 |
partial
반환의 의미는 '종료를 완료하기 위해
더 많은 문자가 필요함'이었으나, 어떤 문자도 제공되지 않음 |
불충분한 버퍼 공간을 나타내도록
수정됨 |
| LWG 381 | C++98 |
state
가 유효할 필요가 없었으며,
state 가 유효하지 않으면 error 가 반환됨 |
state
가 유효해야 하며,
error 반환은 오류를 나타냄 |
| LWG 664 | C++98 |
std::
codecvt
<
char
,
char
,
std::
mbstate_t
>
::
do_unshift
어떤 문자도 쓰지 않아야 했음 |
요구되지 않음 |
| LWG 665 | C++98 |
std::
codecvt
<
char
,
char
,
std::
mbstate_t
>
::
do_unshift
noconv 를 반환해야 했음 |
요구되지 않음 |
참고 항목
|
와이드 문자를 멀티바이트 표현으로 변환합니다 (상태 정보 사용)
(함수) |
|
|
[virtual]
|
InternT
에서
ExternT
로 문자열을 변환합니다 (예: 파일에 쓰기 시)
(가상 protected 멤버 함수) |