type_index(const type_info& rhs) noexcept;
Effects: constructs a type_index object, the equivalent of target = &rhs.
bool operator==(const type_index& rhs) const noexcept;
Returns: *target == *rhs.target
bool operator!=(const type_index& rhs) const noexcept;
Returns: *target != *rhs.target
bool operator<(const type_index& rhs) const noexcept;
Returns: target->before(*rhs.target)
bool operator<=(const type_index& rhs) const noexcept;
Returns: !rhs.target->before(*target)
bool operator>(const type_index& rhs) const noexcept;
Returns: rhs.target->before(*target)
bool operator>=(const type_index& rhs) const noexcept;
Returns: !target->before(*rhs.target)
size_t hash_code() const noexcept;
Returns: target->hash_code()
const char* name() const noexcept;
Returns: target->name()