Namespaces
Variants

std::codecvt<InternT,ExternT,StateT>:: unshift, do_unshift

From cppreference.net
헤더 파일에 정의됨 <locale>
public :

result unshift ( StateT & state, ExternT * to, ExternT * to_end,

ExternT * & to_next ) const ;
(1)
protected :

virtual result do_unshift ( StateT & state, ExternT * to, ExternT * to_end,

ExternT * & to_next ) const ;
(2)
1) Public 멤버 함수, 가장 파생된 클래스의 do_unshift 멤버 함수를 호출합니다.
2) 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 멤버 함수)