25 lines · plain
1namespace std {2 class type_info {3 public:4 virtual ~type_info();5 const char* name() const { return __name; }6 bool operator==(const type_info& __arg) const {7 return __name == __arg.__name;8 }9 10 bool operator!=(const type_info& __arg) const {11 return !operator==(__arg);12 }13 14 bool before(const type_info& __arg) const {15 return __name < __arg.__name;16 }17 18 unsigned long hash_code() const {19 return reinterpret_cast<unsigned long long>(__name);20 }21 protected:22 const char *__name;23 };24}25