
On Friday, January 24, 2020, Alexander Grund wrote:
Currently there is:
- Heap storage, resizable: vector - Stack storage, resizable: static_vector - Heap storage, fixed size at runtime: dynamic_array - Stack storage, fixed size at compiletime: array - Heap storage, fixed size at compiletime: unique_ptr<array>
If you're fine with unique_ptr and most people are, you also have:
Heap storage, fixed size at runtime: allocate_unique<T[]>(alloc, size, ...) Gives users everything they need for buffers. (They don't need a Container that is copyable). And for for: Heap storage, fixed size at compiletime: allocate_unique<T[N]>(alloc, ...) Saves bytes on storing size. It's better than unique_ptr<array<T, N>> because it supports arrays-of-arrays: allocate_unique<T[N][M][O]>(alloc, ...) allocate_unique<T[][M][O]>(alloc, size, ...) This facility shipped with Boost 1.72. Glen