#include <new>
#include <utility>
int main() {
using T = int;
typename std::aligned_storage<sizeof(T), alignof(T)>::type storage;
new (&storage) T();
//(...)
//delete reinterpret_cast<T*>(&storage);
//vs
//reinterpret_cast<T&>(storage).~T();
return 0;
}
I2luY2x1ZGUgPG5ldz4KI2luY2x1ZGUgPHV0aWxpdHk+CgppbnQgbWFpbigpIHsKCXVzaW5nIFQgPSBpbnQ7Cgl0eXBlbmFtZSBzdGQ6OmFsaWduZWRfc3RvcmFnZTxzaXplb2YoVCksIGFsaWdub2YoVCk+Ojp0eXBlIHN0b3JhZ2U7CgluZXcgKCZzdG9yYWdlKSBUKCk7CgkKCS8vKC4uLikKCQoJLy9kZWxldGUgcmVpbnRlcnByZXRfY2FzdDxUKj4oJnN0b3JhZ2UpOwoJLy92cwoJLy9yZWludGVycHJldF9jYXN0PFQmPihzdG9yYWdlKS5+VCgpOwoJCglyZXR1cm4gMDsKfQ==