Есть много причин не использовать typeid
. За исключением использования членов type_info
(поведение, определяемое реализацией), обычно (всегда?) Возможно предоставить аналогичные функции, используя другие возможности языка C ++, например: перегрузку, виртуальные функции и т. Д.
Итак, исключая использование, которое зависит от поведения, определенного реализацией, есть ли у кого-нибудь реальный пример, где typeid
является лучшим решением?
Итак, кроме использования, основанного на поведении, определяемом реализацией, есть ли у кого-нибудь пример из реальной жизни, где typeid - лучшее решение?
Я иногда использую его в выходных данных отладки, чтобы убедитесь, что аргумент шаблона, переданный моей функции, действительно имеет заданный тип. В моем случае это имеет смысл, поскольку фактический аргумент шаблона, передаваемый моей функции, генерируется специализированной мета-функцией, и я хочу убедиться, что используется правильная мета-функция.