template <class Type, size_t sizeA, size_t sizeB>
void concat_arrays(const Type(&a)[sizeA],
const Type(&b)[sizeB],
Type(&result)[sizeA + sizeB])
{
Type(&midpoint)[sizeB] = (Type(&)[sizeB])(result[sizeA]);
std::copy(a, a + sizeA, result);
std::copy(b, b + sizeB, midpoint);
}
Вы можете использовать следующим образом:
int main()
{
int a[3] = { 1, 2, 3 };
int b[3] = { 10, 20, 30 };
int c[6];
concat_arrays(a, b, c); // c = a . b
size_t cSize = sizeof(c) / sizeof(*c);
for (int i = 0; i < cSize; i++)
std::cout << c[i] << std::endl;
return 0;
}