int array[10] = {}; // to 0
std::fill(array, array + 10, x); // to x
Обратите внимание, если вы хотите более общий способ получить конец:
template <typename T, size_t N>
T* endof(T (&pArray)[N])
{
return &pArray[0] + N;
}
Чтобы получить:
std::fill(array, endof(array), x); // to x (no explicit size)
Следует отметить, что std::fill
- это просто оболочка цикла, которую вы пытаетесь избежать, и = {};
может быть реализовано в таких терминах.