Скажем, у меня есть следующее:
struct A
{
int x;
};
//...
A* aOriginal = new A(); //value construct aOriginal
assert( aOriginal->x == 0 );
A* aSecond = new (aOriginal) A;
assert( aSecond->x == 0 );
Гарантируется ли выполнение второго утверждения, даже если aSecond
не является инициализированным значением -? По логике должен, потому что память не перезаписывается, но предусмотрено ли это стандартом?