https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95349
--- Comment #23 from Andrew Downing <andrew2085 at gmail dot com> --- But gcc already can implement std::start_lifetime_as with no overhead. https://godbolt.org/z/YdoEcH My intent wasn't to draw attention to std::start_lifetime_as in this bug report, I only mentioned it as the reason I came up with the original code. My main focus was intended to be std::launder, which when used in this situation, breaks something when it should do nothing at all. My thought was that if it breaks something in this situation, it may break something in other situations too. Possibly where it is actually required.