Namespaces
Variants

std::basic_streambuf<CharT,Traits>:: pbackfail

From cppreference.net
protected :
virtual int_type pbackfail ( int_type c = Traits :: eof ( ) ) ;

이 함수는 다음 조건 중 하나라도 충족될 때만 호출할 수 있습니다:

  • gptr ( ) null 이거나,
  • gptr ( ) == eback ( ) 이거나,
  • traits :: eq ( traits :: to_char_type ( c ) , gptr ( ) [ - 1 ] ) false 를 반환하는 경우.

이 함수는 공개 함수들인 sungetc() sputbackc() 에 의해 호출됩니다(이들은 차례로 basic_istream::unget basic_istream::putback 에 의해 호출됨). 다음 두 경우 중 하나에 해당할 때 호출됩니다:

1) get 영역에 putback 위치가 존재하지 않습니다 ( pbackfail() 가 인자 없이 호출됨). 이 상황에서 pbackfail() 의 목적은 관련 문자 시퀀스가 이를 허용하는 경우(예: 파일 기반 streambuf가 파일에서 버퍼를 한 문자 앞에서 시작하여 재로드할 수 있음) get 영역을 한 문자만큼 되돌리는 것입니다.
2) 호출자가 이전에 검색한 문자와 다른 문자를 되돌리려고 시도합니다( pbackfail() 는 되돌려야 할 문자와 함께 호출됨). 이 상황에서 pbackfail() 의 목적은 문자 c 를 get 영역 내 basic_streambuf::gptr() 바로 앞 위치에 배치하고, 가능하다면 이 변경을 반영하도록 관련 문자 시퀀스를 수정하는 것입니다. 이는 첫 번째 변형에서와 같이 get 영역을 백업하는 것을 포함할 수 있습니다.

이 함수의 기본 기본 클래스 버전은 아무 작업도 수행하지 않고 모든 상황에서 Traits :: eof ( ) 를 반환합니다. 이 함수는 파생 클래스들인 basic_stringbuf::pbackfail , basic_filebuf::pbackfail , strstreambuf::pbackfail 에 의해 재정의되며, 사용자 정의 및 서드파티 라이브러리 스트림 클래스에서도 재정의될 것으로 예상됩니다.

목차

매개변수

ch - 되돌릴 문자 또는 Traits :: eof ( ) 단순히 되돌리기만 요청된 경우

반환값

Traits :: eof ( ) 실패 시 Traits::eof() 를 반환하고, 성공 시 다른 값을 반환합니다. 기본 클래스 버전은 항상 실패합니다.

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 32 C++98 호출 조건 ' traits :: eq ( * gptr ( ) ,traits :: to_char_type ( c ) )
false 를 반환한다'는 설명이 sputbackc() 의 설명과 일치하지 않음
설명과 일치하도록
수정됨

참고 항목

[virtual]
입력 시퀀스를 되돌려 문자를 되돌리며, 연관된 파일에는 영향을 주지 않음
( std::basic_filebuf<CharT,Traits> 의 virtual protected 멤버 함수)
[virtual]
입력 시퀀스에 문자를 다시 넣음
( std::basic_stringbuf<CharT,Traits,Allocator> 의 virtual protected 멤버 함수)
[virtual]
입력 시퀀스를 되돌려 문자를 되돌림
( std::strstreambuf 의 virtual protected 멤버 함수)
입력 시퀀스의 다음 포인터를 하나 뒤로 이동
(public 멤버 함수)
입력 시퀀스에 문자 하나를 다시 넣음
(public 멤버 함수)