std::basic_streambuf<CharT,Traits>::showmanyc
protected: virtual std::streamsize showmanyc(); |
Оценивает количество символов, доступных для ввода в связанной последовательности символов. underflow() гарантирует, что не будет возвращено значение Traits::eof() или выброшено исключение, пока не будет извлечено хотя бы такое количество символов.
Параметры
(нет)
Возвращаемое значение
Количество символов, которые, безусловно, доступны в связанной последовательности символов, или -1, если showmanyc может определить, не блокируя, что символы недоступны. Если showmanyc возвращает -1, underflow() и uflow() обязательно вернут Traits::eof или выбросят исключение.
Версия базового класса возвращает 0, что означает «неизвестно, есть ли доступные символы в связанной последовательности».
Примечания
Название этой функции означает «поток: сколько символов?», поэтому ее произносят как «Эс, хау мени си», а не «шоу мени си».
Пример
Отчёты об ошибках
Следующие отчёты об ошибках, изменяющие поведение, были применены ретроактивно к ранее опубликованным стандартам C++.
| DR | Применено к | Поведение, как опубликовано | Правильное поведение |
|---|---|---|---|
| LWG 159 | C++98 |
underflow() гарантирует, что ошибка не произойдёт, пока не будетпоставлено хотя бы showmanyc() символов | расширено гарантирует, что можно извлечь не менееshowmanyc() символов |
См. также
| получает количество символов, немедленно доступных в области получения (публичный член-функция) |
|
|
[virtual] | необязательно предоставляет количество символов, доступных для ввода из файла (виртуальная защищенная член-функция std::basic_filebuf<CharT,Traits>) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/io/basic_streambuf/showmanyc