Sound4Calc/include/typeinfo.h

83 lines
2.9 KiB
C++

/*------------------------------------------------------*/
/* SH SERIES C Compiler Ver. 1.0 */
/* Copyright (c) 1992 Hitachi,Ltd. */
/* Licensed material of Hitachi,Ltd. */
/*------------------------------------------------------*/
/***********************************************************************/
/* SPEC; */
/* NAME = typeinfo.h : */
/* */
/* FUNC = Include file for type information (18.5.1) */
/* */
/* CLAS = UNIT; */
/* */
/* END; */
/***********************************************************************/
#ifndef _TYPEINFO_H
#define _TYPEINFO_H
#include <stdexcept.h>
#ifdef __EDG_RUNTIME_USES_NAMESPACES
namespace std {
#endif /* ifdef __EDG_RUNTIME_USES_NAMESPACES */
/*
If bool is not supported, use a typedef for bool.
*/
#ifdef _BOOL
typedef bool __bool;
#else /* ifndef _BOOL */
typedef int __bool;
#endif /* ifdef _BOOL */
/* 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() 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();
};
#ifdef __EDG_RUNTIME_USES_NAMESPACES
} /* 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 /* ifdef __EDG_RUNTIME_USES_NAMESPACES */
#endif /* _TYPEINFO_H */