полной специализации
- не совсем понимаю. Ты имеешь в виду частное инстанцирование шаблона?enable_if
тут помогут, но они не нужны, т.к. это слишком сложная для такой задачи техника.int array[SIZE];
int array2[SIZE];
memcpy(array2, array, sizeof(int)*SIZE);
random_array(array);
memcpy
стоит быть осторожным. Функция дает ожидаемый результат только для тривиальных типов.memcpy
- это функция прямого копирования блоков памяти. Функция ничего не знает про инвариант объекта в памяти.std::copy
, наоборот, умеет понимать инварианты объектов и производить копирование не нарушая инвариант источника. Дополнительно, эта функция не даст скомпилировать код если тип объектов не является копируемым.std::begin
и std::end
являются частью C++11. Если тебе компилятор пишет что не может найти их объявление, значит ты просишь его собирать код используя стандарт до C++11.