home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Tricks of the Windows Gam…ming Gurus (2nd Edition)
/
Disc2.iso
/
vc98
/
include
/
xception
< prev
next >
Wrap
Text File
|
1998-06-16
|
2KB
|
96 lines
/***
*exception - Defines class exception and related functions
*
* Copyright (c) 1994-1997, Microsoft Corporation. All rights reserved.
* Modified January 1996 by P.J. Plauger
*
*Purpose:
* Defines class exception (and derived class bad_exception)
* plus new and unexpected handler functions.
*
* [Public]
*
****/
#if _MSC_VER > 1000
#pragma once
#endif
#ifndef _EXCEPTION_
#define _EXCEPTION_
#include <xstddef>
#include <eh.h>
#ifdef _MSC_VER
#pragma pack(push,8)
#endif /* _MSC_VER */
#if !defined(_WIN32) && !defined(_MAC)
#error ERROR: Only Mac or Win32 targets supported!
#endif
#ifndef _CRTIMP
#ifdef _NTSDK
/* definition compatible with NT SDK */
#define _CRTIMP
#else /* ndef _NTSDK */
/* current definition */
#ifdef _DLL
#define _CRTIMP __declspec(dllimport)
#else /* ndef _DLL */
#define _CRTIMP
#endif /* _DLL */
#endif /* _NTSDK */
#endif /* _CRTIMP */
typedef const char *__exString;
class _CRTIMP exception
{
public:
exception();
exception(const __exString&);
exception(const exception&);
exception& operator= (const exception&);
virtual ~exception();
virtual __exString what() const;
private:
__exString _m_what;
int _m_doFree;
};
_STD_BEGIN
using ::exception;
// CLASS bad_exception
class _CRTIMP bad_exception : public exception {
public:
bad_exception(const char *_S = "bad exception") _THROW0()
: exception(_S) {}
virtual ~bad_exception() _THROW0()
{}
protected:
virtual void _Doraise() const
{_RAISE(*this); }
};
_CRTIMP bool __cdecl uncaught_exception();
_STD_END
#ifdef __RTTI_OLDNAMES
typedef exception xmsg; // A synonym for folks using older standard
#endif
#ifdef _MSC_VER
#pragma pack(pop)
#endif /* _MSC_VER */
#endif /* _EXCEPTION_ */
/*
* 1994-1995, Microsoft Corporation. All rights reserved.
* Modified January 1996 by P.J. Plauger
* Consult your license regarding permissions and restrictions.
*/