#pragma once #include #include #ifdef _MSC_VER #pragma pack(push, 8) #endif // _MSC_VER #ifndef _FARQ // specify standard memory model #define _FARQ #define _PDFT ptrdiff_t #define _SIZT size_t #endif #define _POINTER_X(T, A) T _FARQ * #define _REFERENCE_X(T, A) T _FARQ & _STD_BEGIN // TEMPLATE FUNCTION _Allocate template inline _Ty _FARQ *_Allocate(_PDFT _N, _Ty _FARQ *) {if (_N < 0) _N = 0; return ((_Ty _FARQ *)operator new( (_SIZT)_N * sizeof (_Ty))); } // TEMPLATE FUNCTION __Construct template inline void __Construct(_T1 _FARQ *_P, const _T2& _V) {new ((void _FARQ *)_P) _T1(_V); } // TEMPLATE FUNCTION __Destroy template inline void __Destroy(_Ty _FARQ *_P) {_DESTRUCTOR(_Ty, _P); } inline void __Destroy(char _FARQ *_P) {} inline void __Destroy(wchar_t _FARQ *_P) {} // TEMPLATE CLASS allocator template class allocator_ { public: typedef _SIZT size_type; typedef _PDFT difference_type; typedef _Ty _FARQ *pointer; typedef const _Ty _FARQ *const_pointer; typedef _Ty _FARQ& reference; typedef const _Ty _FARQ& const_reference; typedef _Ty value_type; pointer address(reference _X) const {return (&_X); } const_pointer address(const_reference _X) const {return (&_X); } pointer allocate(size_type _N, const void *) {return (_Allocate((difference_type)_N, (pointer)0)); } char _FARQ *_Charalloc(size_type _N) {return (_Allocate((difference_type)_N, (char _FARQ *)0)); } void deallocate(void _FARQ *_P, size_type) {operator delete(_P); } void construct(pointer _P, const _Ty& _V) {__Construct(_P, _V); } void destroy(pointer _P) {__Destroy(_P); } _SIZT max_size() const {_SIZT _N = (_SIZT)(-1) / sizeof (_Ty); return (0 < _N ? _N : 1); } }; template inline bool operator==(const allocator_<_Ty>&, const allocator_<_U>&) {return (true); } template inline bool operator!=(const allocator_<_Ty>&, const allocator_<_U>&) {return (false); } // CLASS allocator_ template<> class _CRTIMP2 allocator_ { public: typedef void _Ty; typedef _Ty _FARQ *pointer; typedef const _Ty _FARQ *const_pointer; typedef _Ty value_type; }; _STD_END #ifdef _MSC_VER #pragma pack(pop) #endif // _MSC_VER