// new standard header #ifndef _NEW_ #define _NEW_ #include #ifdef _MSC_VER /* * Currently, all MS C compilers for Win32 platforms default to 8 byte * alignment. */ #pragma pack(push,8) #endif /* _MSC_VER */ /* Define _CRTIMP */ #ifndef _CRTIMP /* current definition */ #ifdef CRTDLL #define _CRTIMP __declspec(dllexport) #else /* ndef CRTDLL */ #ifdef _DLL #define _CRTIMP __declspec(dllimport) #else /* ndef _DLL */ #define _CRTIMP #endif /* _DLL */ #endif /* CRTDLL */ #endif /* _CRTIMP */ // SUPPORT TYPES typedef void (*new_handler)(); struct nothrow_t {}; const nothrow_t nothrow; // CLASS bad_alloc class bad_alloc : public exception { public: bad_alloc(const char *_S = "bad allocation") _THROW0() : exception(_S) {} virtual ~bad_alloc() _THROW0() {} protected: virtual void _Doraise() const {_RAISE(*this); } }; // FUNCTION AND OBJECT DECLARATIONS _CRTIMP new_handler set_new_handler(new_handler) _THROW0(); extern new_handler _New_hand; // new AND DELETE DECLARATIONS void __cdecl operator delete(void *) _THROW0(); void *__cdecl operator new(size_t) _THROW1(::bad_alloc); void *__cdecl operator new(size_t, const ::nothrow_t&) _THROW0(); inline void *__cdecl operator new(size_t, void *_P) {return (_P); } #ifdef _MSC_VER #pragma pack(pop) #endif /* _MSC_VER */ #endif /* _NEW_ */ /* * Copyright (c) 1994 by P.J. Plauger. ALL RIGHTS RESERVED. * Consult your license regarding permissions and restrictions. */