Lightning talk: Manual (de)initialization A Rust and C++
summary
Compares concrete recipes for manual initialization and destruction: Rust uses std::mem::MaybeUninit plus raw pointers and unsafe writes to do in-place init; C++ uses placement new into an aligned byte buffer. Destruction order differs: Rust runs drops in declaration order (and field layout is unspecified) while C++ initializes in declaration order and drops in reverse. To control drop order Rust uses ManuallyDrop and explicit drop_in_place calls; C++ uses the union trick to avoid implicit destructors.
AI-written summary Β· about
chapters (8)
- 0:00Introduction
- 0:48Automatic memory init in Rust/C++
- 2:14Manual init in Rust
- 4:24Manual init in C++
- 5:48Automatic destructor behavior
- 6:50Destructor order differences
- 7:51Controlling drop order
- 10:16Summary
related talks
55mSafe Static Initialisation & Clean Up in Libraries
38mInitialization in Rust with pin-init
01h 01mInitialization in modern C++
04mLightning Talk: Now in Our Lifetimes Cpp
53mThe Static Initialization Order Fiasco
04mLightning Talk: A Journey Back In Time - C++ Evolution
01h 01mInitialization, Shutdown, and constexpr
08mLightning Talk: C++ and Rust Bindings - Mixing It Best With CMake
