Вы передаете от const Gen<T>
до operator<<
.Это означает, что когда вы вызываете g.array.begin()
, вы вызываете константную перегрузку begin, которая возвращает const_iterator :
const_iterator begin() const noexcept;
, а затем вы пытаетесь присвоить его vector<T>::iterator
,что вызывает ошибку компилятора.Вы можете исправить это так:
auto it = g.array.begin()
, который говорит компилятору выводить правильный тип для it
.