|
|
bad_cast , bad_typeid , type_info - defines class type_info, the result of the typeid operator
namespace std { class type_info; class bad_cast; class bad_typeid; };
Include the standard header <typeinfo>
to define several types associated with the type-identification operator
typeid
,
which yields information about both static and dynamic types.
class bad_cast : public exception { };
The class describes an exception thrown to indicate that a dynamic cast expression, of the form:
dynamic_cast<type>(expression)
generated a null pointer to initialize a reference.
The value returned by
what()
is an implementation-defined
C string.
None of the member functions throw any exceptions.
class bad_typeid : public exception { };
The class describes an exception thrown to indicate that a
typeid
operator encountered a
null pointer. The value returned by
what()
is an implementation-defined
C string.
None of the member functions throw any exceptions.
before , name , operator!= , operator==
class type_info { public: virtual ~type_info(); bool operator==(const type_info& rhs) const; bool operator!=(const type_info& rhs) const; bool before(const type_info& rhs) const; const char *name() const; private: type_info(const type_info& rhs); type_info& operator=(const type_info& rhs); };
The class describes type information generated within the program by the implementation. Objects of this class effectively store a pointer to a name for the type, and an encoded value suitable for comparing two types for equality or collating order. The names, encoded values, and collating order for types are all unspecified and may differ between program executions.
An expression of the form typeid x
is the only way to
construct a (temporary) typeinfo
object. The class has only
a private copy constructor. Since the assignment operator is also
private, you cannot copy or assign objects of class typeinfo
either.
type_info::operator!=
bool operator!=(const type_info& rhs) const;
The function returns !(*this
== rhs)
.
type_info::operator==
bool operator==(const type_info& rhs) const;
The function returns a nonzero value if *this
and rhs
represent the same type.
bool before(const type_info& rhs) const;
The function returns a nonzero value if *this
precedes rhs
in the
collating order for types.
const char *name() const;
The function returns a C string which specifies the name of the type.
Copyright © 1992-1996 by P.J. Plauger. Portions derived from work copyright © 1994 by Hewlett-Packard Company. All rights reserved.