.destroy(zis) would actually do *zis = typeof(*zis).init, while typeid(A).destroy(zis) would just call destructor.