Зачем мне нужно #include <typeinfo> при использовании оператора typeid?

typeid представляет оператор C ++ RTTI, являющийся также ключевым словом C ++. Возвращаетstd::type_info объект, который содержит (динамический) тип конкретной информации.

Из того, что я понял из разных источников, один ДОЛЖЕН включать<typeinfo> когда используешьtypeidв противном случае программа некорректна. Фактически, мой компилятор gcc5.2 даже не компилирует программу, если я не включил ранее упомянутый заголовок. Я не понимаю, почему включение заголовка разрешено для использования C ++ключевое слово, Я понимаю обязательный заголовок для каждого объекта, который объявлен / определен в этом заголовке, ноtypeid не относится к типу класса. Так что является причиной этого принудительного включения заголовка<typeinfo>?

Ответы на вопрос(2)

Ваш ответ на вопрос