F12 auf endl bringt mich im VS2003 auf folgendes nettes Konstrukt:
Code:
template<class _Elem, class _Traits> inline
basic_ostream<_Elem, _Traits>&
__cdecl endl(basic_ostream<_Elem, _Traits>& _Ostr)
{ // insert newline and flush stream
_Ostr.put(_Ostr.widen('\n'));
_Ostr.flush();
return (_Ostr);
}
Also in den generischen Outstream wird das \n geschrieben, und anschließend der Stream "geflushed". Wofür immer das auch gut sein soll (wahrscheinlich wird bei endl immer sichergestellt, daß der Stream dann auch wirklich physikalisch auf die Disk. D.h. wenn dir nach dem endl der Rechner abstürzt, kannst du sicher sein, daß die Zeile vorhanden ist).
Wenn du's genau wissen willst, müßtest du dir "basic_ostream" Klasse mal genauer ansehen.