#include <iostream>
#include <memory>
#include <cstring>
 
struct A
{
  std::unique_ptr<int> up_myInt;
  A(int val)
  :
    up_myInt(std::make_unique<int>(val))
  {}
};
 
int main()
{
	A a(1);
	{
	  A b(2);
	  memcpy(&a, &b, sizeof(A));
	  std::cout << *a.up_myInt << std::endl;
	  //b gets deleted, and the memory b.up_myInt points to is gone
	}
	std::cout << *a.up_myInt << std::endl;
	return 0;
}
				I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWVtb3J5PgojaW5jbHVkZSA8Y3N0cmluZz4KCnN0cnVjdCBBCnsKICBzdGQ6OnVuaXF1ZV9wdHI8aW50PiB1cF9teUludDsKICBBKGludCB2YWwpCiAgOgogICAgdXBfbXlJbnQoc3RkOjptYWtlX3VuaXF1ZTxpbnQ+KHZhbCkpCiAge30KfTsKCmludCBtYWluKCkKewoJQSBhKDEpOwoJewoJICBBIGIoMik7CgkgIG1lbWNweSgmYSwgJmIsIHNpemVvZihBKSk7CgkgIHN0ZDo6Y291dCA8PCAqYS51cF9teUludCA8PCBzdGQ6OmVuZGw7CgkgIC8vYiBnZXRzIGRlbGV0ZWQsIGFuZCB0aGUgbWVtb3J5IGIudXBfbXlJbnQgcG9pbnRzIHRvIGlzIGdvbmUKCX0KCXN0ZDo6Y291dCA8PCAqYS51cF9teUludCA8PCBzdGQ6OmVuZGw7CglyZXR1cm4gMDsKfQ==