#pragma once #include #include #include #include #ifdef _MSC_VER #pragma pack(push, 8) #endif // _MSC_VER _STD_BEGIN // STREAM POSITIONING TYPES (from ) typedef long streamoff_; const streamoff_ __BADOFF = -1; typedef int streamsize_; #undef _Fpz extern _CRTIMP2 const fpos_t _Fpz; // TEMPLATE CLASS fpos_ (from ) template class fpos_ { typedef fpos_<_St> _Myt; public: #ifdef _MT fpos_(streamoff_ _O = 0) : _Off(_O), _Fpos(_Fpz) {_Lockit _Lk; _State = _Stz; } #else fpos_(streamoff_ _O = 0) : _Off(_O), _Fpos(_Fpz), _State(_Stz) {} #endif fpos_(_St _S, fpos_t _F) : _Off(0), _Fpos(_F), _State(_S) {} _St state() const {return (_State); } void state(_St _S) {_State = _S; } fpos_t get_fpos_t() const {return (_Fpos); } operator streamoff_() const {return (_Off + _FPOSOFF(_Fpos)); } streamoff_ operator-(const _Myt& _R) const {return ((streamoff_)*this - (streamoff_)_R); } _Myt& operator+=(streamoff_ _O) {_Off += _O; return (*this); } _Myt& operator-=(streamoff_ _O) {_Off -= _O; return (*this); } _Myt operator+(streamoff_ _O) const {_Myt _Tmp = *this; return (_Tmp += _O); } _Myt operator-(streamoff_ _O) const {_Myt _Tmp = *this; return (_Tmp -= _O); } bool operator==(const _Myt& _R) const {return ((streamoff_)*this == (streamoff_)_R); } bool operator!=(const _Myt& _R) const {return (!(*this == _R)); } private: static _St _Stz; streamoff_ _Off; fpos_t _Fpos; _St _State; }; template _St fpos_<_St>::_Stz; typedef fpos_ streampos_; typedef streampos_ wstreampos_; // TEMPLATE STRUCT char_traits_ (FROM ) template struct char_traits_ { typedef _E char_type; typedef _E int_type; typedef streampos_ pos_type; typedef streamoff_ off_type; typedef mbstate_t state_type; static void __cdecl assign(_E& _X, const _E& _Y) {_X = _Y; } static bool __cdecl eq(const _E& _X, const _E& _Y) {return (_X == _Y); } static bool __cdecl lt(const _E& _X, const _E& _Y) {return (_X < _Y); } static int __cdecl compare(const _E *_U, const _E *_V, size_t _N) {for (size_t _I = 0; _I < _N; ++_I, ++_U, ++_V) if (!eq(*_U, *_V)) return (lt(*_U, *_V) ? -1 : +1); return (0); } static size_t __cdecl length(const _E *_U) {size_t _N; for (_N = 0; !eq(*_U, _E(0)); ++_U) ++_N; return (_N); } static _E * __cdecl copy(_E *_U, const _E *_V, size_t _N) {_E *_S = _U; for (; 0 < _N; --_N, ++_U, ++_V) assign(*_U, *_V); return (_S); } static const _E * __cdecl find(const _E *_U, size_t _N, const _E& _C) {for (; 0 < _N; --_N, ++_U) if (eq(*_U, _C)) return (_U); return (0); } static _E * __cdecl move(_E *_U, const _E *_V, size_t _N) {_E *_Ans = _U; if (_V < _U && _U < _V + _N) for (_U += _N, _V += _N; 0 < _N; --_N) assign(*--_U, *--_V); else for (; 0 < _N; --_N, ++_U, ++_V) assign(*_U, *_V); return (_Ans); } static _E * __cdecl assign(_E *_U, size_t _N, const _E& _C) {_E *_Ans = _U; for (; 0 < _N; --_N, ++_U) assign(*_U, _C); return (_Ans); } static _E __cdecl to_char_type(const int_type& _C) {return ((_E)_C); } static int_type __cdecl to_int_type(const _E& _C) {return ((int_type)_C); } static bool __cdecl eq_int_type(const int_type& _X, const int_type& _Y) {return (_X == _Y); } static int_type __cdecl eof() {return (EOF); } static int_type __cdecl not_eof(const int_type& _C) {return (_C != eof() ? _C : !eof()); } }; // STRUCT char_traits_ template<> struct _CRTIMP2 char_traits_ { typedef wchar_t _E; typedef _E char_type; // for overloads typedef wint_t int_type; typedef streampos_ pos_type; typedef streamoff_ off_type; typedef mbstate_t state_type; static void __cdecl assign(_E& _X, const _E& _Y) {_X = _Y; } static bool __cdecl eq(const _E& _X, const _E& _Y) {return (_X == _Y); } static bool __cdecl lt(const _E& _X, const _E& _Y) {return (_X < _Y); } static int __cdecl compare(const _E *_U, const _E *_V, size_t _N) {return (wmemcmp(_U, _V, _N)); } static size_t __cdecl length(const _E *_U) {return (wcslen(_U)); } static _E *__cdecl copy(_E *_U, const _E *_V, size_t _N) {return (wmemcpy(_U, _V, _N)); } static const _E * __cdecl find(const _E *_U, size_t _N, const _E& _C) {return ((const _E *)wmemchr(_U, _C, _N)); } static _E * __cdecl move(_E *_U, const _E *_V, size_t _N) {return (wmemmove(_U, _V, _N)); } static _E * __cdecl assign(_E *_U, size_t _N, const _E& _C) {return (wmemset(_U, _C, _N)); } static _E __cdecl to_char_type(const int_type& _C) {return ((_E)_C); } static int_type __cdecl to_int_type(const _E& _C) {return ((int_type)_C); } static bool __cdecl eq_int_type(const int_type& _X, const int_type& _Y) {return (_X == _Y); } static int_type __cdecl eof() {return (WEOF); } static int_type __cdecl not_eof(const int_type& _C) {return (_C != eof() ? _C : !eof()); } }; // STRUCT char_traits_ (FROM ) template<> struct _CRTIMP2 char_traits_ { typedef char _E; typedef _E char_type; typedef int int_type; typedef streampos_ pos_type; typedef streamoff_ off_type; typedef mbstate_t state_type; static void __cdecl assign(_E& _X, const _E& _Y) {_X = _Y; } static bool __cdecl eq(const _E& _X, const _E& _Y) {return (_X == _Y); } static bool __cdecl lt(const _E& _X, const _E& _Y) {return (_X < _Y); } static int __cdecl compare(const _E *_U, const _E *_V, size_t _N) {return (memcmp(_U, _V, _N)); } static size_t __cdecl length(const _E *_U) {return (strlen(_U)); } static _E * __cdecl copy(_E *_U, const _E *_V, size_t _N) {return ((_E *)memcpy(_U, _V, _N)); } static const _E * __cdecl find(const _E *_U, size_t _N, const _E& _C) {return ((const _E *)memchr(_U, _C, _N)); } static _E * __cdecl move(_E *_U, const _E *_V, size_t _N) {return ((_E *)memmove(_U, _V, _N)); } static _E * __cdecl assign(_E *_U, size_t _N, const _E& _C) {return ((_E *)memset(_U, _C, _N)); } static _E __cdecl to_char_type(const int_type& _C) {return ((_E)_C); } static int_type __cdecl to_int_type(const _E& _C) {return ((int_type)((unsigned char)_C)); } static bool __cdecl eq_int_type(const int_type& _X, const int_type& _Y) {return (_X == _Y); } static int_type __cdecl eof() {return (EOF); } static int_type __cdecl not_eof(const int_type& _C) {return (_C != eof() ? _C : !eof()); } }; // FORWARD REFERENCES template class allocator_; class ios_base; template > class basic_ios; template > class istreambuf_iterator_; template > class ostreambuf_iterator_; template > class basic_streambuf; template > class basic_istream; template > class basic_ostream; template > class basic_iostream; template, class _A = allocator_<_E> > class basic_stringbuf; template, class _A = allocator_<_E> > class basic_istringstream; template, class _A = allocator_<_E> > class basic_ostringstream; template, class _A = allocator_<_E> > class basic_stringstream; template > class basic_filebuf; template > class basic_ifstream; template > class basic_ofstream; template > class basic_fstream; // char TYPEDEFS typedef basic_ios > ios_; typedef basic_streambuf > streambuf_; typedef basic_istream > istream_; typedef basic_ostream > ostream_; typedef basic_iostream > iostream_; typedef basic_stringbuf, allocator_ > stringbuf_; typedef basic_istringstream, allocator_ > istringstream_; typedef basic_ostringstream, allocator_ > ostringstream_; typedef basic_stringstream, allocator_ > stringstream_; typedef basic_filebuf > filebuf_; typedef basic_ifstream > ifstream_; typedef basic_ofstream > ofstream_; typedef basic_fstream > fstream_; // wchar_t TYPEDEFS typedef basic_ios > wios_; typedef basic_streambuf > wstreambuf_; typedef basic_istream > wistream_; typedef basic_ostream > wostream_; typedef basic_iostream > wiostream_; typedef basic_stringbuf, allocator_ > wstringbuf_; typedef basic_istringstream, allocator_ > wistringstream_; typedef basic_ostringstream, allocator_ > wostringstream_; typedef basic_stringstream, allocator_ > wstringstream_; typedef basic_filebuf > wfilebuf_; typedef basic_ifstream > wifstream_; typedef basic_ofstream > wofstream_; typedef basic_fstream > wfstream_; #ifdef _DLL template class num_get; template class num_put; template class collate; typedef num_get > > numget_; typedef num_get > > wnumget_; typedef num_put > > numput_; typedef num_put > > wnumput_; typedef collate ncollate; typedef collate wcollate; #endif // _DLL _STD_END #ifdef _MSC_VER #pragma pack(pop) #endif // _MSC_VER