Зачем мне нужно #include <typeinfo> при использовании оператора typeid?
typeid
представляет оператор C ++ RTTI, являющийся также ключевым словом C ++. Возвращаетstd::type_info
объект, который содержит (динамический) тип конкретной информации.
Из того, что я понял из разных источников, один ДОЛЖЕН включать<typeinfo>
когда используешьtypeid
в противном случае программа некорректна. Фактически, мой компилятор gcc5.2 даже не компилирует программу, если я не включил ранее упомянутый заголовок. Я не понимаю, почему включение заголовка разрешено для использования C ++ключевое слово, Я понимаю обязательный заголовок для каждого объекта, который объявлен / определен в этом заголовке, ноtypeid
не относится к типу класса. Так что является причиной этого принудительного включения заголовка<typeinfo>
?