G
enby!

Павел Новиков — Веселье с type erasure: делаем обертку с семантикой значения для полиморфных типов

Подробнее о конференции C++ Russia: https://jrg.su/9Sszhd
— — Скачать презентацию с сайта C++ Russia — https://jrg.su/GCua56
Цель доклада — познакомить с подноготной базовой реализации type erasure (т.н. «стирание типов») в C++, а также придать уверенности при возможном взаимодействии с подобным кодом. Используя реализацию обертки с семантикой значения в качестве примера, мы посмотрели на то, как работает type erasure, похожий на std::any. В отличие от повсеместно используемой семантики указателя или ссылки, в данном случае обертка с семантикой значения позволяет нам обращаться с полиморфными объектами со «стертыми типами» как с обычными значениями: перемещать их, копировать, присваивать новые значения, при этом всей головной болью владения (ownership) и клонирования объекта исходного типа займётся реализация «за кулисами». Саму идею обертки с семантикой значения подробно обсудил Jonathan Boccara в своем докладе:    • Meta Polymorphism - Jonathan Boccara - Mee...  

Смотрите также