| ▲ | szmarczak 3 hours ago | |
No because the object does not exist after std::launder. It only exists after std::start_lifetime_as. The bytes being there says nothing about the object, per the C++ standard. | ||
| ▲ | jandrewrogers 2 hours ago | parent [-] | |
The compiler will create an implicit lifetime type at the memmove destination as required to give it defined behavior. Technically you don't even need std::launder, it is just far more convenient than the alternative. | ||