#include <iostream>
#include <cstring>
using namespace std;
class my {
public:
int x;
my() {
x = 0;
std::cout << "constructor called" << std::endl;
}
~my() {
std::cout << "destructor called" << std::endl;
}
};
int main() {
auto mem = malloc(sizeof(my));
if (mem) {
auto myPtr = new(mem) my;
myPtr->~my();
free(mem);
}
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8Y3N0cmluZz4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNsYXNzIG15IHsKcHVibGljOgoJaW50IHg7CgoJbXkoKSB7IAoJCXggPSAwOyAKCQlzdGQ6OmNvdXQgPDwgImNvbnN0cnVjdG9yIGNhbGxlZCIgPDwgc3RkOjplbmRsOwoJfQoKCX5teSgpIHsgCgkJc3RkOjpjb3V0IDw8ICJkZXN0cnVjdG9yIGNhbGxlZCIgPDwgc3RkOjplbmRsOwoJfQp9OwoKaW50IG1haW4oKSB7CglhdXRvIG1lbSA9IG1hbGxvYyhzaXplb2YobXkpKTsKCWlmIChtZW0pIHsKCQlhdXRvIG15UHRyID0gbmV3KG1lbSkgbXk7CgkJCgkJbXlQdHItPn5teSgpOwoJCWZyZWUobWVtKTsKCX0KfQo=