Я пытаюсь перегрузить оператор вывода для печати из класса с шаблоном, который использует нетиповые значения.Тем не менее, я получаю сообщение об ошибке
"идентификатор неожиданного токена", ожидаемый ";" "
в теле функции оператора.Как мне исправить либо объявление друга, либо определение перегрузки оператора, чтобы избежать этой ошибки?
template <int N, int M> class Screen {
friend std::ostream& operator<< (std::ostream&, const Screen&);
public:
Screen(): width(N), height(M) {}
int width = 0;
int height = 0;
};
template <int N, int M>
std::ostream& operator<< (std::ostream& os, const Screen<N, M>& a)
{
os << a.width << ":" a.height;
return os;
}