gcc-papermario/cp/inc/typeinfo
2020-09-20 21:06:00 -04:00

72 lines
1.2 KiB
C++

// RTTI support for -*- C++ -*-
// Copyright (C) 1994, 1995, 1996 Free Software Foundation
#ifndef __TYPEINFO__
#define __TYPEINFO__
#include <exception>
extern "C++" {
#if 0
namespace std {
#endif
class type_info {
private:
// assigning type_info is not supported. made private.
type_info& operator= (const type_info&);
type_info (const type_info&);
protected:
type_info (const char *n): _name (n) { }
const char *_name;
public:
// destructor
virtual ~type_info ();
bool before (const type_info& arg) const;
const char* name () const
{ return _name; }
bool operator== (const type_info& arg) const;
bool operator!= (const type_info& arg) const;
};
// We can't rely on common symbols being shared between translation units
// under Windows. Sigh.
#ifndef _WIN32
inline bool type_info::
operator== (const type_info& arg) const
{
return &arg == this;
}
inline bool type_info::
operator!= (const type_info& arg) const
{
return &arg != this;
}
#endif
class bad_cast : public exception {
public:
bad_cast() { }
virtual ~bad_cast() { }
};
class bad_typeid : public exception {
public:
bad_typeid () { }
virtual ~bad_typeid () { }
};
#if 0
} // namespace std
#endif
} // extern "C++"
#endif