You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
2.1 KiB
80 lines
2.1 KiB
5 years ago
|
/*
|
||
|
* C++ Library file typeinfo
|
||
|
* Copyright 1997 ARM Limited. All rights reserved.
|
||
|
*/
|
||
|
|
||
|
/*
|
||
|
* RCS $Revision: 177844 $
|
||
|
* Checkin $Date: 2012-11-21 11:51:12 +0000 (Wed, 21 Nov 2012) $
|
||
|
* Revising $Author: pwright $
|
||
|
*/
|
||
|
|
||
|
/* Edison Design Group, 1995-2005. */
|
||
|
/*
|
||
|
typeinfo.h -- Include file for type information (18.5.1)
|
||
|
*/
|
||
|
#ifndef _TYPEINFO
|
||
|
#define _TYPEINFO
|
||
|
#define __ARMCLIB_VERSION 5050106
|
||
|
|
||
|
#ifndef __EXCEPTION_INCLUDED
|
||
|
#include <exception>
|
||
|
#endif /* __EXCEPTION_INCLUDED */
|
||
|
|
||
|
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;
|
||
|
protected:
|
||
|
/* Protected instead of private: core issue 252 */
|
||
|
static void operator delete(void*) { /* nothing */ }
|
||
|
private:
|
||
|
type_info& operator=(const type_info&); // Not actually defined
|
||
|
#if 0
|
||
|
#else /* 0 */
|
||
|
protected:
|
||
|
// Protected instead of private to suppress the "no accessible
|
||
|
// constructor" warning
|
||
|
#endif /* 0 */
|
||
|
type_info(const type_info&); // Not actually defined
|
||
|
private:
|
||
|
const char *__type_name;
|
||
|
};
|
||
|
|
||
|
class bad_cast : public exception {
|
||
|
public:
|
||
|
bad_cast() throw();
|
||
|
bad_cast(const bad_cast&) throw();
|
||
|
bad_cast& operator=(const bad_cast&) throw();
|
||
|
virtual ~bad_cast() throw();
|
||
|
virtual const char* what() const throw();
|
||
|
};
|
||
|
|
||
|
class bad_typeid : public exception {
|
||
|
public:
|
||
|
bad_typeid() throw();
|
||
|
bad_typeid(const bad_typeid&) throw();
|
||
|
bad_typeid& operator=(const bad_typeid&) throw();
|
||
|
virtual ~bad_typeid() throw();
|
||
|
virtual const char* what() const throw();
|
||
|
};
|
||
|
|
||
|
} /* namespace std */
|
||
|
|
||
|
#ifdef __EDG_IMPLICIT_USING_STD
|
||
|
/* Implicitly include a using directive for the STD namespace when this
|
||
|
preprocessing flag is TRUE. */
|
||
|
using namespace ::std;
|
||
|
#endif /* ifdef __EDG_IMPLICIT_USING_STD */
|
||
|
|
||
|
#endif /* _TYPEINFO */
|
||
|
|