<typeinfo>

Description
Synopsis
Classes

Description

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.

Synopsis

namespace std {
class type_info;
class bad_cast;
class bad_typeid;
    }

Classes

bad_cast
bad_typeid
type_info

bad_cast

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.

bad_typeid

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.

type_info

Description
Synopsis
Member functions
type_info::operator!=
type_info::operator==
type_info::before
type_info::name
Description

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.

Synopsis
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);
    };
Member functions
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.

type_info::before

bool before(const type_info& rhs) const;

The function returns a nonzero value if *this precedes rhs in the collating order for types.

type_info::name

const char *name() const;

The function returns a C string which specifies the name of the type.

Copyright note

Certain materials included or referred to in this document are copyright P.J. Plauger and/or Dinkumware, Ltd. or are based on materials that are copyright P.J. Plauger and/or Dinkumware, Ltd.

Notwithstanding the meta-data for this document, copyright information for this document is as follows:

Copyright © IBM Corp. 1999, 2010. & Copyright © P.J. Plauger and/or Dinkumware, Ltd. 1992-2006.