Add windows libs
This commit is contained in:
183
windows_libs/Microsoft Visual C++ Toolkit 2003/include/exception
Normal file
183
windows_libs/Microsoft Visual C++ Toolkit 2003/include/exception
Normal file
@@ -0,0 +1,183 @@
|
||||
// exception standard header for Microsoft
|
||||
#pragma once
|
||||
#ifndef _EXCEPTION_
|
||||
#define _EXCEPTION_
|
||||
#include <xstddef>
|
||||
|
||||
#pragma pack(push,8)
|
||||
#pragma warning(push,3)
|
||||
_STD_BEGIN
|
||||
|
||||
#define _USE_EX using ::exception; \
|
||||
using ::set_terminate; using ::terminate_handler; using ::terminate; \
|
||||
using ::set_unexpected; using ::unexpected_handler; using ::unexpected;
|
||||
|
||||
|
||||
#if _HAS_EXCEPTIONS
|
||||
_STD_END
|
||||
|
||||
#include <eh.h>
|
||||
|
||||
#if !defined(_WIN32)
|
||||
#error ERROR: Only Win32 targets supported!
|
||||
#endif /* !defined(_WIN32) */
|
||||
|
||||
#ifndef _CRTIMP
|
||||
|
||||
#ifdef _DLL
|
||||
#define _CRTIMP __declspec(dllimport)
|
||||
|
||||
#else /* ndef _DLL */
|
||||
#define _CRTIMP
|
||||
#endif /* _DLL */
|
||||
|
||||
#endif /* _CRTIMP */
|
||||
|
||||
typedef const char *__exString;
|
||||
|
||||
class _CRTIMP exception
|
||||
{ // base of all library exceptions
|
||||
public:
|
||||
exception();
|
||||
exception(const char *const&);
|
||||
exception(const exception&);
|
||||
exception& operator=(const exception&);
|
||||
virtual ~exception();
|
||||
virtual const char *what() const;
|
||||
|
||||
private:
|
||||
const char *_m_what;
|
||||
int _m_doFree;
|
||||
};
|
||||
|
||||
_STD_BEGIN
|
||||
|
||||
_USE_EX
|
||||
typedef void (*_Prhand)(const exception&);
|
||||
extern _CRTIMP2 _Prhand _Raise_handler;
|
||||
_CRTIMP2 bool __cdecl uncaught_exception();
|
||||
|
||||
#else /* _HAS_EXCEPTIONS */
|
||||
// CLASS exception
|
||||
class exception;
|
||||
typedef void (*_Prhand)(const exception&);
|
||||
|
||||
extern _CRTIMP2 _Prhand _Raise_handler; // pointer to raise handler
|
||||
|
||||
_CRTIMP2 void __cdecl _Throw(const exception&); // throw the exception
|
||||
|
||||
class _CRTIMP2 exception
|
||||
{ // base of all library exceptions
|
||||
public:
|
||||
static _Prhand _Set_raise_handler(_Prhand _Pnew)
|
||||
{ // register a handler for _Raise calls
|
||||
const _Prhand _Pold = _Raise_handler;
|
||||
_Raise_handler = _Pnew;
|
||||
return (_Pold);
|
||||
}
|
||||
|
||||
explicit exception(const char *_Message = _MESG("unknown"))
|
||||
_THROW0()
|
||||
: _Ptr(_Message)
|
||||
{ // construct from message string
|
||||
}
|
||||
|
||||
exception(const exception& _Right) _THROW0()
|
||||
: _Ptr(_Right._Ptr)
|
||||
{ // construct by copying _Right
|
||||
}
|
||||
|
||||
exception& operator=(const exception& _Right) _THROW0()
|
||||
{ // assign _Right
|
||||
_Ptr = _Right._Ptr;
|
||||
return (*this);
|
||||
}
|
||||
|
||||
virtual ~exception()
|
||||
{ // destroy the object
|
||||
}
|
||||
|
||||
virtual const char *what() const _THROW0()
|
||||
{ // return pointer to message string
|
||||
return (_Ptr);
|
||||
}
|
||||
|
||||
void _Raise() const
|
||||
{ // raise the exception
|
||||
if (_Raise_handler != 0)
|
||||
(*_Raise_handler)(*this); // call raise handler if present
|
||||
|
||||
_Doraise(); // call the protected virtual
|
||||
_RAISE(*this); // raise this exception
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual void _Doraise() const
|
||||
{ // perform class-specific exception handling
|
||||
}
|
||||
|
||||
protected:
|
||||
const char *_Ptr; // the message pointer
|
||||
};
|
||||
|
||||
// TYPES
|
||||
typedef void (__cdecl *terminate_handler)();
|
||||
typedef void (__cdecl *unexpected_handler)();
|
||||
|
||||
// DUMMY FUNCTION DECLARATIONS
|
||||
inline terminate_handler __cdecl set_terminate(terminate_handler)
|
||||
_THROW0()
|
||||
{ // register a terminate handler
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline unexpected_handler __cdecl set_unexpected(unexpected_handler)
|
||||
_THROW0()
|
||||
{ // register an unexpected handler
|
||||
return 0;
|
||||
}
|
||||
|
||||
inline void __cdecl terminate()
|
||||
{ // handle exception termination
|
||||
}
|
||||
|
||||
inline void __cdecl unexpected()
|
||||
{ // handle unexpected exception
|
||||
}
|
||||
|
||||
_CRTIMP2 bool __cdecl uncaught_exception(); // handle uncaught exception
|
||||
#endif /* _HAS_EXCEPTIONS */
|
||||
|
||||
// CLASS bad_exception
|
||||
class bad_exception : public exception
|
||||
{ // base of all bad exceptions
|
||||
public:
|
||||
bad_exception(const char *_Message = _MESG("bad exception"))
|
||||
_THROW0()
|
||||
: exception(_Message)
|
||||
{ // construct from message string
|
||||
}
|
||||
|
||||
virtual ~bad_exception() _THROW0()
|
||||
{ // destroy the object
|
||||
}
|
||||
|
||||
#if !_HAS_EXCEPTIONS
|
||||
protected:
|
||||
virtual void _Doraise() const
|
||||
{ // raise this exception
|
||||
_RAISE(*this);
|
||||
}
|
||||
#endif /* _HAS_EXCEPTIONS */
|
||||
|
||||
};
|
||||
_STD_END
|
||||
#pragma warning(pop)
|
||||
#pragma pack(pop)
|
||||
|
||||
#endif /* _EXCEPTION_ */
|
||||
|
||||
/*
|
||||
* Copyright (c) 1992-2002 by P.J. Plauger. ALL RIGHTS RESERVED.
|
||||
* Consult your license regarding permissions and restrictions.
|
||||
V3.13:0009 */
|
Reference in New Issue
Block a user