Данные сток - это то, что поглощает ваши данные и становится их владельцем.
Терминология берет свое начало в понятии "конвейеры", где некоторый конкретный объект в цепочке объектов берет свои данные из "источника", а затем отправляет свой результат в "приемник". Следующая сущность в цепочке делает то же самое и так далее. На каждом этапе сущность больше не может ничего делать с данными, которые ей передаются.
По аналогии (и в качестве примера) рассмотрите возможность получения данных из std::cin
(потока, выступающего в качестве источника), выполнения некоторых вычислений и передачи результата в std::cout
(потока, выступающего в качестве приемника). Как только вы закончите, вы закончите; результаты находятся в эфире, и вы не можете их вернуть.
Вот что делает auto_ptr
: он передает право собственности на ваши данные, независимо от того, хотели вы этого или нет.