63 lines
1.3 KiB
Plaintext
63 lines
1.3 KiB
Plaintext
|
// XXX taken from /boot/develop/tools/gnupro/lib/gcc-lib/i586-beos/2.9-beos-991026/include
|
||
|
// XXX From GCC, exact license unknown. Must be LGPL or better :)
|
||
|
// XXX Doesn't belong into posix, should be replaced as soon as possible
|
||
|
|
||
|
// RTTI support for -*- C++ -*-
|
||
|
// Copyright (C) 1994, 95-97, 1998 Free Software Foundation
|
||
|
|
||
|
#ifndef __TYPEINFO__
|
||
|
#define __TYPEINFO__
|
||
|
|
||
|
#pragma interface "typeinfo"
|
||
|
|
||
|
#include <exception>
|
||
|
|
||
|
extern "C++" {
|
||
|
|
||
|
namespace std {
|
||
|
|
||
|
class type_info {
|
||
|
private:
|
||
|
// assigning type_info is not supported. made private.
|
||
|
type_info& operator= (const type_info&);
|
||
|
type_info (const type_info&);
|
||
|
|
||
|
protected:
|
||
|
explicit 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;
|
||
|
};
|
||
|
|
||
|
inline bool type_info::
|
||
|
operator!= (const type_info& arg) const
|
||
|
{
|
||
|
return !operator== (arg);
|
||
|
}
|
||
|
|
||
|
class bad_cast : public exception {
|
||
|
public:
|
||
|
bad_cast() { }
|
||
|
virtual ~bad_cast() { }
|
||
|
};
|
||
|
|
||
|
class bad_typeid : public exception {
|
||
|
public:
|
||
|
bad_typeid () { }
|
||
|
virtual ~bad_typeid () { }
|
||
|
};
|
||
|
|
||
|
} // namespace std
|
||
|
|
||
|
} // extern "C++"
|
||
|
#endif
|