Type erasure
Стирание типа
Назначение
Идиома type erasure позволяет работать с объектами разных типов, скрывая их реальный тип при помощи абстрактного интерфейса.
"Стирание типа" позволяет описать общую концепцию, которую могут реализовывать объекты различных типов, при этом скрывая от пользователя конкретный тип объекта.
Решаемые задачи
необходимость работать с объектами разных типов, но при этом обеспечить единый интерфейс и скрыть от пользователя реальный тип объекта
Различные методы реализации "Стирания типа"
Стирание типа, используя void*
Недостаток: небезопасно и для каждого типа требуется отдельная функция сравнения
Стирание типа с использованием шаблонов C++
Недостаток: может привести к появлению множества экземпляров шаблона функции и увеличению времени компиляции
Стирание типа с использованием полиморфизма
Недостаток: затраты времени выполнения
Стирание типа с помощью объединения
Недостаток: не является типобезопасным
Last updated
Was this helpful?