В некоторых оригинальных компиляторах вы правы, они использовали сравнение строк.
В результате dynamic_cast <> был очень медленным (условно говоря), поскольку иерархия классов проходилась по каждому шагу вверх / вниз по цепочке иерархии, требующей сравнения строки с именем класса.
Это приводитдля многих людей, разрабатывающих свои собственные методы литья.Это почти всегда было в конечном итоге бесполезно, так как требовалось, чтобы каждый класс был правильно аннотирован, а когда что-то пошло не так, было почти невозможно отследить ошибку.
Но это также древняя история.
Яне знаю, как это сделать сейчас, но это определенно не включает сравнение строк.Делать это самостоятельно - тоже плохая идея (никогда не делайте работу, которую уже выполняет компилятор).Любая ваша попытка не будет такой же быстрой или точной, как у компилятора, помните, что годы разработки были направлены на то, чтобы сделать код компилятора настолько быстрым, насколько это возможно (и это всегда будет правильно).