diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /public/sdk/inc/crt/typeinfo.h | |
download | NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2 NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip |
Diffstat (limited to 'public/sdk/inc/crt/typeinfo.h')
-rw-r--r-- | public/sdk/inc/crt/typeinfo.h | 88 |
1 files changed, 88 insertions, 0 deletions
diff --git a/public/sdk/inc/crt/typeinfo.h b/public/sdk/inc/crt/typeinfo.h new file mode 100644 index 000000000..55245e14f --- /dev/null +++ b/public/sdk/inc/crt/typeinfo.h @@ -0,0 +1,88 @@ +/*** +*typeinfo.h - Defines the type_info structure and exceptions used for RTTI +* +* Copyright (c) 1994-1995, Microsoft Corporation. All rights reserved. +* +*Purpose: +* Defines the type_info structure and exceptions used for +* Runtime Type Identification. +* +* [Public] +* +****/ + +#if _MSC_VER > 1000 +#pragma once +#endif + +#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 _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 */ + +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 <stdexcpt.h> + +class _CRTIMP bad_cast : public exception { +public: + bad_cast(const __exString& what_arg) : exception (what_arg) {} +}; + +class _CRTIMP bad_typeid : public exception { +public: + bad_typeid(const char * what_arg) : exception (what_arg) {} +}; + +class _CRTIMP __non_rtti_object : public bad_typeid { +public: + __non_rtti_object(const char * what_arg) : bad_typeid(what_arg) {} +}; + +#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 + + +#endif // _INC_TYPEINFO |