• Print  |
  • Feedback  |

Knowledge Base


TS-587

TS587: SAS/C++ 6.50C HEADER <typeinfo.h> MISSING

 
The include file: typeinfo.h, for RTTI support was not included in the distribution
for the UNIX versions of the 6.50C Cross-compiler.


#if !defined __TYPEINFO_H
#define __TYPEINFO_H
/*-------------------------------------------------------------------*/
/* Copyright (c) 1997            by SAS Institute Inc., Cary NC      */
/*-------------------------------------------------------------------*/

#if !defined __EXCEPTION_H

// terminate_handler --  type of a handler function called when
//                        terminate() is called.
// The handler function must end the program without returning.
typedef void (*terminate_handler)();

// set_terminate -- sets the current termination handler
//
// Returns the old termination handler.  The new handler
// pointer must not be NULL.
terminate_handler set_terminate(terminate_handler new_handler);

// terminate() -- call the termination handler
//
// terminate() is called under various conditions when a C++
// exception could not be handled.  C++ exceptions are not
// supported in this release, but RTTI operations can detect
// erroneous conditions which are normally handled by
// throwing an exception.  In this release, the RTTI
// operations, in effect, call terminate().
//
// This function calls the current termination handler.
// The default handler calls abort().
void terminate();

#endif /* __EXCEPTION_H */


/* All include's for this file must happen before here. */

#ifdef __I370__
#define __SASCXXLIB_CLASS_DEF_KEYS __alignmem
#define __RENT __rent
#define __NORENT __norent

#else
#define __SASCXXLIB_CLASS_DEF_KEYS
#define __RENT
#define __NORENT
#endif

__SASCXXLIB_CLASS_DEF_KEYS class type_info
{
public:
   // The destructor should never be called.
   virtual ~type_info();

   // Do two type_info objects represent the same type?
   int operator==(const type_info& rhs) const;

   // Do two type_info objects represent different types?
   int operator!=(const type_info& rhs) const { return !(*this == rhs); }

   // Provide an ordering relation on types.
   // The order is arbitrary and may change in different program loads.
   int before(const type_info& rhs) const;

   // Return a human-readable description of the type represented by
   // the type_info object.  The function calls operator new to
   // allocate working storage.  The result is cached so it should
   // not be deallocated by the user.
   const char* name() const;

private:
   // restrict construction and assignment
   type_info( const type_info& rhs );
   type_info& operator=( const type_info& rhs );

   const char* m_name;
   char m_type[1];
};

// Exceptions are not supported yet, so we don't define
//   the classes "bad_typeid" or "bad_cast".

#endif /* __TYPEINFO_H */