make `with_capacity` not abort for zero-size types