Конструкторы сломаны

Конструкторы обещают безопасный и гарантированный способ инициализации объектов в C++. Но на самом деле они предоставляют множество скрытых возможностей для чтения неинициализированной памяти и создают проблемы эргономики, которые могут негативно сказаться на производительности (из-за необходимости генерировать исключения для сигнализации о сбое) и использовании памяти (из-за необходимости менять структуру класса для инициализации членов в правильном порядке в списке инициализаторов конструктора). Присоединяйтесь к нам, чтобы разобраться в некоторых из этих тем и узнать о разумной альтернативе из Rust — функции-фабрике, которая может сделать наш код безопаснее и лучше. Специальные гости: синтаксис обновления структур/функциональное обновление записей, инициализаторы нестатических членов данных/NSDMI, NonZeroU8 и узкоспециализированные оптимизации, Option/optional, а также множество размышлений об инвариантах типов. Суперконструкция Super Elider:
Безопасность памяти АНБ:
Для анимации этих видео я использую замечательную библиотеку Manim и редактирую их в Blender и Audacity.


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