Has to be contiguous, resizable, safe and support custom allocators. Has to include an atomic variant of it.