如P0532R0中所述,在以下用例中,必须使用std::launder来避免未定义的行为(UB):structX{constinti;x(inti):i{i}{}};unsignedcharbuff[64];autop=new(buff)X(33);p->~X();new(buff)X(42);p=std::launder(p);assert(p->i==42);但是如果缓冲区上有多个对象会发生什么(这正是如果将2个X压入一个vector,清除该vector然后压入两个新的X):unsignedcharbuff[64];autop0=new(buff)X(33);autop1=new(