/** -*- C++ -*- ** ** KAI C++ Compiler ** ** Copyright (C) 1996-2001 Intel Corp. All rights reserved. **/ /* Edison Design Group, 1995. */ /* typeinfo.h -- Include file for type information (18.5.1) */ #ifndef __KAI_TYPEINFO #define __KAI_TYPEINFO #include namespace std { /* The following pragma is used so that the compiler knows that this definition * of type_info is the one that corresponds to the type returned by typeid. */ #pragma define_type_info class type_info { public: virtual ~type_info(); bool operator==(const type_info&) const; bool operator!=(const type_info&) const; bool before(const type_info&) const; const char* name() const; private: type_info& operator=(const type_info&); // Not actually defined protected: // Protected instead of private to suppress the "no accessible // constructor" warning type_info(const type_info&); // Not actually defined }; class bad_cast : public exception { public : bad_cast() MSIPL_THROW { } bad_cast(const bad_cast&) MSIPL_THROW { } bad_cast& operator=(const bad_cast&) MSIPL_THROW { return *this; } virtual ~bad_cast() MSIPL_THROW; virtual const char *what() const MSIPL_THROW; static void __throw( const char * what_arg ); }; class bad_typeid : public exception { public : bad_typeid () MSIPL_THROW { } bad_typeid(const bad_typeid&) MSIPL_THROW { } bad_typeid& operator=(const bad_typeid&) MSIPL_THROW { return *this; } virtual ~bad_typeid () MSIPL_THROW; virtual const char *what() const MSIPL_THROW; }; } /* namespace std */ #endif /* __KAI_TYPEINFO */