Por que preciso # incluir <typeinfo> ao usar o operador typeid?

otypeid representa um operador C ++ RTTI sendo também uma palavra-chave C ++. Retorna umstd::type_info objeto que contém informações específicas do tipo (dinâmico).

Pelo que entendi de várias fontes, é preciso incluir<typeinfo> ao usartypeid, caso contrário, o programa está mal formado. De fato, meu compilador gcc5.2 nem sequer compila o programa se eu não incluir o cabeçalho mencionado anteriormente. Não entendo por que uma inclusão de cabeçalho é obrigatória para o uso de um C ++palavra chave. Entendo obrigar um cabeçalho para sempre que usarmos algum objeto declarado / definido nesse cabeçalho, mastypeid não é de um tipo de classe. Então, qual é o motivo por trás dessa aplicação da inclusão do cabeçalho<typeinfo>?

questionAnswers(2)

yourAnswerToTheQuestion