Are We There Yet?
summary
P0593R6 makes a concrete change: it defines implicit-lifetime types (aggregates with a trivial eligible constructor and trivial non-deleted destructor) so objects are treated as if they exist in newly allocated storage, and pseudo-destructors end lifetime for such types. Allocators and operations like memcpy/memmove/bit_cast now legally produce objects in raw bytes so dereferencing is defined, with the caveat that copy/move assignment does not create an object on self-assignment. No direct start_lifetime_as facility yet.
AI-written summary · about
related talks
04mLightning Talk: Now in Our Lifetimes Cpp
01h 21mAn (In-)Complete Guide to C++ Object Lifetimes
58mAn (In-)Complete Guide to C++ Object Lifetimes
49mC++: Objects, their lifetime and pointers
01h 01mSurprises in Object Lifetime
59mA Tour of C++ Recognised User Type Categories
01h 01mGetting Allocators out of Our Way
01h 23mElsewhere Memory (C++20 Abstract Machine) + Virtual Memory
