Я не знаю, что это неправильно, при попытке перегрузить >> и < <шаблон и перегрузки IStream
template<class T, int N> class vector{
friend istream &operator>> <T,N>(istream &, vector &);
friend ostream &operator<< <T,N>(ostream &, const vector &);
};
template<class T, int N>
istream &operator>>(istream &input, vector<T,N>& v)
{
for (int i=0; i<N; i++)
input >> v.component[i];
return input;
}
Компилятор г ++ говорит
vector.h:22:17: error: template-id ‘operator>><double, 2>’ for
‘std::istream& operator>>(std::istream&, vector<double, 2>&)’
does not match any template declaration
friend istream &operator>> <T,N>(istream &, vector &);
^
vector.h:23:17: error: template-id ‘operator<< <double, 2>’ for
‘std::ostream& operator<<(std::ostream&, const vector<double, 2>&)’
does not match any template declaration
friend ostream &operator<< <T,N>(ostream &, const vector &);
^
является 'vecotr', вы владеете классом или это' std :: vector' ?? –
Это мой собственный класс. Благодарю. – user2448054