#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;
}