resize keeps previous data intact when the buffer grows resize_destructive destroys the previous data when the buffer grows
This class creates a default initialized heap allocated buffer for cases where value initializing members during allocation or resize is redundant.