STL: манипуляторы потоков
От: orangy Россия
Дата: 13.09.02 09:44
Оценка:
Для затравки начнём с потоков.

Согласно стандарту, operator<< для функций-манипуляторов выглядит так:
basic_ostream<charT,traits>& operator<<
   (basic_ostream<charT,traits>& (* pf)(basic_ostream<charT,traits>&));

Returns: pf(*this).

Что, вобщем не мешает возвращать другой поток из манипулятора.
Таким образом код
  ostream& mutatestream(ostream& s); // возвращает не s, а другой поток
  cout << "some string" << mutatestream << "another string";

потенциально может вывести "another string" в другой поток.

Вопрос: регулирует ли стандарт такое поведение (я что-то не нашёл)? В любом случае, как по-вашему должно быть?
... << J 1.0 alpha 4 >>
"Develop with pleasure!"
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.