namespace std { class type_info { public: virtual ~type_info(); bool operator==(const type_info& rhs) const noexcept; bool operator!=(const type_info& rhs) const noexcept; bool before(const type_info& rhs) const noexcept; size_t hash_code() const noexcept; const char* name() const noexcept; type_info(const type_info& rhs) = delete; // cannot be copied type_info& operator=(const type_info& rhs) = delete; // cannot be copied }; }
Класс type_info описывает информацию о типе, созданную реализацией. Объекты этого класса эффективно хранят указатель на имя типа и закодированное значение, подходящее для сравнения двух типов на равенство или порядок сортировки. Имена, правила кодирования и последовательность сортировки для типов не определены и могут отличаться в зависимости от программы.
bool operator==(const type_info& rhs) const noexcept;
bool operator!=(const type_info& rhs) const noexcept;
bool before(const type_info& rhs) const noexcept;
size_t hash_code() const noexcept;
Returns: Неуказанное значение, за исключением того, что в рамках одного выполнения программы оно должно возвращать одно и то же значение для любых двух type_info сравниваемых объектов.
Remarks: Реализация должна возвращать разные значения для двух type_info объектов, которые не равны для сравнения.
const char* name() const noexcept;
Remarks: Сообщение может быть форматом null-terminated multibyte string, подходящим для преобразования и отображенным как wstring ([string.classes], [locale.codecvt])