32325cf365
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1631 a95241bf-73f2-0310-859d-f6bbb57e9c96
63 lines
1.3 KiB
C++
63 lines
1.3 KiB
C++
// 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
|