Шаг 525.
Библиотека STL. Ввод-вывод с использованием потоковых классов. Проблемы эффективности. Непосредственная работа с потоковыми буферами

    На этом шаге мы рассмотрим организацию работы с потоковыми буферами.

    Все функции классов basic_istream и basic_ostream, выполняющие чтение или запись символов, работают по одной схеме: сначала конструируется соответствующий объект sentry, а затем выполняется операция. Конструирование объекта sentry приводит к очистке буферов возможных связанных объектов, игнорированию пропусков (только при вводе) и выполнению операций, специфических для конкретных реализаций, например операций блокировки файлов в средах с параллельным функционированием нескольких потоков выполнения (threads), то есть в многопоточных средах (смотри 508 шаг).

    При неформатированном вводе-выводе многие операции потоков данных все равно бесполезны, разве что операция блокировки может пригодиться при работе с потоками в средах с параллельным функционированием нескольких потоков выполнения (поскольку в C++ проблемы многопоточности не решаются). Следовательно, при неформатированном вводе-выводе прямая работа с потоковыми буферами обычно более эффективна.

    Для этого можно определить для потоковых буферов операторы << и >>.

    Со следующего шага мы начнем рассматривать вопросы интернационализации.




Предыдущий шаг Содержание Следующий шаг