Если вы хотите перегрузить оператор для существующего типа, не изменяя этот тип, вы можете выбрать перегрузку, не связанную с элементом.
Здесь вы можете попробовать шаблонный подход, чтобы охватить все возможные массивы, если элементы могут быть добавлены:
template <class T, size_t n>
std::array<T,n>& operator+= (std::array< T, n>& l, const std::array<T, n> &r) {
for (size_t i=0; i<n; i++)
l[i] += r[i];
return l;
}
Демонстрация в сети