26template <
typename T, std::size_t... Ns> std::array<T, (Ns + ...)> concatenate(
const std::array<T, Ns>&... arrays)
28 std::array<T, (Ns + ...)> result;
30 std::size_t offset = 0;
31 auto copy_into = [&](
const auto& array) {
32 std::copy(array.begin(), array.end(), result.begin() + offset);
33 offset += array.size();
36 (copy_into(arrays), ...);