Два способа динамической отправки

Rust и C++ имеют встроенную (но разную) поддержку динамической диспетчеризации, и оба языка позволяют реализовать её иначе, чем встроенной. В этой статье мы рассмотрим подходы обоих языков, взвесим все «за» и «против» и в конечном итоге придём к выводу, что оба они — правильный выбор в различных ситуациях (не правда ли, что это так неудовлетворительно и типично?). Появились специальные гости: vtables, vptr, wide pointers, thunks, unsafe code, drop glue, virtual destructors, the rule of three, и я, перезаписываю раздел с живым кодом раз пять, потому что постоянно всё путаю. Лекция Шона Пэрента —    • Better Code: Runtime Polymorphism - Sean P...   Godbolt для демонстрации —
Dyno —
NonNull —
thunk —
std::function —
std::any —
Для анимации этих видео я использую замечательную библиотеку Manim и редактирую их в Blender и Audacity.


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