36 #pragma GCC visibility push(default)
42 class __class_type_info;
61 #ifndef __GXX_MERGED_TYPEINFO_NAMES
64 #define __GXX_MERGED_TYPEINFO_NAMES 0
67 #define __GXX_MERGED_TYPEINFO_NAMES 1
72 #ifndef __GXX_TYPEINFO_EQUALITY_INLINE
74 #define __GXX_TYPEINFO_EQUALITY_INLINE 0
76 #define __GXX_TYPEINFO_EQUALITY_INLINE 1
102 #if !__GXX_TYPEINFO_EQUALITY_INLINE
103 bool before(
const type_info& __arg)
const;
108 bool operator==(
const type_info& __arg)
const;
110 #if !__GXX_MERGED_TYPEINFO_NAMES
111 #error "Inline implementation of type_info comparision requires merging of type_info objects"
117 bool before(
const type_info& __arg)
const
118 {
return __name < __arg.__name; }
120 bool operator==(
const type_info& __arg)
const
121 {
return __name == __arg.__name; }
123 bool operator!=(
const type_info& __arg)
const
124 {
return !operator==(__arg); }
127 virtual bool __is_pointer_p()
const;
130 virtual bool __is_function_p()
const;
138 virtual bool __do_catch(
const type_info *__thr_type,
void **__thr_obj,
139 unsigned __outer)
const;
142 virtual bool __do_upcast(
const __cxxabiv1::__class_type_info *__target,
143 void **__obj_ptr)
const;
148 explicit type_info(
const char *__n): __name(__n) { }
152 type_info& operator=(
const type_info&);
153 type_info(
const type_info&);
172 virtual const char*
what()
const throw();
189 virtual const char*
what()
const throw();
193 #pragma GCC visibility pop
Thrown during incorrect typecasting.If you attempt an invalid dynamic_cast expression, an instance of this class (or something derived from this class) is thrown.
virtual const char * what() const
Thrown when a NULL pointer in a typeid expression is used.
virtual const char * what() const
const char * name() const
Base class for all library exceptions.