std::strstreambuf:: pbackfail
From ru.cppreference.net
<
cpp
|
io
|
strstreambuf
|
protected
:
virtual int_type pbackfail ( int_type c = EOF ) ; |
(устарело в C++98)
(удалено в C++26) |
|
Эта защищённая виртуальная функция вызывается публичными функциями basic_streambuf::sungetc и basic_streambuf::sputbackc (которые, в свою очередь, вызываются basic_istream::unget и basic_istream::putback ).
1)
Вызывающая сторона запрашивает резервирование области получения одним символом (
pbackfail()
вызывается без аргументов или с
EOF
в качестве аргумента)
a)
Сначала проверяет, есть ли позиция возврата, и если её действительно нет, завершается неудачей (
strstreambuf
не имеет внешнего источника символов для повторного чтения).
b)
Если вызывающая сторона была не права и позиция возврата символа фактически доступна, просто уменьшает
basic_streambuf::gptr()
, например, вызывая
gbump
(
-
1
)
.
2)
Вызывающая сторона пытается вернуть символ, отличный от ранее извлеченного (
pbackfail()
вызывается с символом, который необходимо вернуть), в этом случае
a)
Сначала проверяет, есть ли позиция возврата, и если нет, завершается неудачей.
b)
Затем проверяет, какой символ находится в позиции возврата. Если символ, находящийся там, уже равен
(
char
)
c
, то просто уменьшает
basic_streambuf::gptr()
.
c)
В противном случае, если буфер неизменяем (этот strstreambuf был создан с использованием строкового литерала или другого
const
массива), завершается неудачей.
d)
В противном случае, уменьшает
basic_streambuf::gptr()
и записывает
c
в позицию, на которую указывает
gptr
(
)
после корректировки.
Содержание |
Параметры
| c | - | символ для возврата, или Traits :: eof ( ) для указания запроса возврата области получения |
Возвращаемое значение
c при успехе, за исключением случая, когда c был EOF , в этом случае возвращается неопределенное значение, отличное от EOF .
EOF при неудаче.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
[virtual]
|
помещает символ обратно во входную последовательность, возможно изменяя входную последовательность
(виртуальная защищённая функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
перемещает следующий указатель во входной последовательности на один символ назад
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
помещает один символ обратно во входную последовательность
(публичная функция-член
std::basic_streambuf<CharT,Traits>
)
|
|
|
отменяет извлечение символа
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|
|
|
помещает символ во входной поток
(публичная функция-член
std::basic_istream<CharT,Traits>
)
|