An (In-)Complete Guide to C++ Object Lifetimes
Jonathan Müller - 4 months ago
A C++ program manipulate objects, but it is undefined behavior if you attempt to manipulate them while they are not alive. So let's do a deep dive into object lifetime. When are objects created and when are they destroyed? How does temporary lifetime extension come into play and what changed there recently? What happens when you `std::malloc` memory and just pretend objects are there without creating anything? Or worse: You use `mmap()` to read shared memory. How do unions interact with constructors, strict aliasing, or the "common initial sequence"? What when you explicitly call the destructor and later re-use the same storage? What's the deal with `std::launder`, `std::bit_cast`, and `std::start_lifetime_as`? We'll answer all of those questions and much more. We'll do that by looking at the C++ standard, old and new proposals, and compiler optimizations.
Jobs with related skills
Softwareentwickler (m/w/d)
NanoFocus AG
·
1 month ago
Oberhausen, Germany
Embedded Hardware/Software Spezialist (m/w/d)
Rosenxt Group
·
1 month ago
Lingen (Ems), Germany
Hybrid
Software Engineer für Apple CarPlay (m/w/d)
e.solutions GmbH
·
1 month ago
Ingolstadt, Germany
Hybrid
Software System Engineer / Software Architect (m/w/d)
KRÜSS GmbH
·
27 days ago
Hamburg, Germany
Hybrid
Related Videos