The fundamental building blocks of this library can be seen as:
template<class... Ts>
auto allocate_adjacent_arrays(std::integral auto... sizes) -> std::tuple<std::pair<Ts*, Ts*>...>;
This function would allocate a single block of memory that fits sizeof...(Ts) arrays which the sizes are given in sizes. The return value returns pointers to (non-constructed) objects inside this.
The second building block would be something like std::uninitialized_value_construct which support multiple begin/end iterators.
Then it should be very easy to build this library.
The fundamental building blocks of this library can be seen as:
This function would allocate a single block of memory that fits
sizeof...(Ts)arrays which the sizes are given insizes. The return value returns pointers to (non-constructed) objects inside this.The second building block would be something like
std::uninitialized_value_constructwhich support multiple begin/end iterators.Then it should be very easy to build this library.