Я думаю, что Джерри и Мартин выдвинули лучшее предложение, но ради полноты первое, о чем я подумал, было: std::endl
.
Если вы внедрили Log
в системе iostream
пользовательским классом streambuf
можно просто добавить << endl
или << flush
в конце строки.Поскольку вы спрашиваете, я полагаю, что вы этого не сделали.
Но вы можете имитировать, как работает endl
.Либо добавьте обработчик манипулятора
Log &operator<< ( Log &l, Log & (*manip)( Log & ) )
{ return manip( l ); } // generically call any manipulator
Log &flog( Log &l ) // define a manipulator "flush log"
{ l->flush(); return l; }
, либо добавьте выделенный operator<<
struct Flog {} flog;
Log &operator<< ( Log &l, Flog )
{ l->flush(); return l; }