Leaked source code of windows server 2003
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*** *typeinfo.h - Defines the type_info structure and exceptions used for RTTI * * Copyright (c) 1994-2001, Microsoft Corporation. All rights reserved. * Modified January 1996 by P.J. Plauger * *Purpose: * Defines the type_info structure and exceptions used for * Runtime Type Identification. * * [Public] * ****/
#ifndef __cplusplus #error This header requires a C++ compiler ... #endif
#ifndef _INC_TYPEINFO #define _INC_TYPEINFO
#if !defined(_WIN32) && !defined(_MAC) #error ERROR: Only Mac or Win32 targets supported! #endif
/* Define _CRTIMP */
#ifndef _CRTIMP #ifdef _DLL #define _CRTIMP __declspec(dllimport) #else /* ndef _DLL */ #define _CRTIMP #endif /* _DLL */ #endif /* _CRTIMP */
#include <xstddef>
#ifdef _MSC_VER #pragma pack(push,8) #endif /* _MSC_VER */
class type_info { public: _CRTIMP virtual ~type_info(); _CRTIMP int operator==(const type_info& rhs) const; _CRTIMP int operator!=(const type_info& rhs) const; _CRTIMP int before(const type_info& rhs) const; _CRTIMP const char* name() const; _CRTIMP const char* raw_name() const; private: void *_m_data; char _m_d_name[1]; type_info(const type_info& rhs); type_info& operator=(const type_info& rhs); };
// This include must occur below the definition of class type_info #include <exception>
_STD_BEGIN // CLASS bad_cast class _CRTIMP2 bad_cast : public exception { public: bad_cast(const char *_S = "bad cast") _THROW0() : exception(_S) {} virtual ~bad_cast() _THROW0() {} protected: virtual void _Doraise() const {_RAISE(*this); } }; // CLASS bad_typeid class _CRTIMP2 bad_typeid : public exception { public: bad_typeid(const char *_S = "bad typeid") _THROW0() : exception(_S) {} virtual ~bad_typeid() _THROW0() {} protected: virtual void _Doraise() const {_RAISE(*this); } };
class _CRTIMP2 __non_rtti_object : public bad_typeid { public: __non_rtti_object(const char * what_arg) : bad_typeid(what_arg) {} }; using ::type_info; _STD_END using std::__non_rtti_object;
#ifdef __RTTI_OLDNAMES // Some synonyms for folks using older standard typedef type_info Type_info; typedef bad_cast Bad_cast; typedef bad_typeid Bad_typeid; #endif // __RTTI_OLDNAMES
#ifdef _MSC_VER #pragma pack(pop) #endif /* _MSC_VER */
#endif // _INC_TYPEINFO
/* * 1994-2000, Microsoft Corporation. All rights reserved. * Modified January 1996 by P.J. Plauger * Consult your license regarding permissions and restrictions. */
|