1.1 can be done without any code but 1.2 makes std::start_lifetime_at <T> (p)
retain the memory bit representation as initial value of the object? The
paper mentions std::launder (ick), but I'm not sure how this is implementable
at all if not sufficiently restricted.
See for example PR101641 where even existing cases are currently impossible to get right. So the only way to make std::start_lifetime_at <T> is to somehow
emit a hard memory barrier for the compiler _and_ make sure the underlying
storage is address-taken. Note this barrier has to prevail in RTL as well
(I think std::launder is broken in this regard).