深入了解STL的流操作
basic_streambuf
6 points(begin,next,end)
class std::ios_base
std::ios
using streamoff = long long; using streamsize = long long; using streampos = fpos<_Mbstatet>; using wstreampos = streampos; template<class _Elem, class _Int_type> struct _Char_traits
operator << 的细节
template<class _Elem, class _Traits, class _Alloc> inline basic_ostream<_Elem, _Traits>& operator<<( basic_ostream<_Elem, _Traits>& _Ostr, const basic_string<_Elem, _Traits, _Alloc>& _Str) { // insert a string return (_Insert_string(_Ostr, _Str.data(), _Str.size())); } template<class _Elem, class _Traits> inline basic_ostream<_Elem, _Traits>& __CLRCALL_OR_CDECL endl(basic_ostream<_Elem, _Traits>& _Ostr) { // insert newline and flush stream _Ostr.put(_Ostr.widen('\n')); _Ostr.flush(); return (_Ostr); } class std::basic_ostream<_Elem, _Traits> { basic_ostream& __CLR_OR_THIS_CALL operator<<(basic_ostream& (__cdecl *_Pfn)(basic_ostream&)) { // call basic_ostream manipulator return ((*_Pfn)(*this)); } }