C ++: declaração de amigo "declara uma função não modelo
Eu tenho um problema para sobrecarregar o<<
operador de fluxo e não encontro a solução:
template<class T, unsigned int TN>
class NVector
{
inline friend std::ostream& operator<< (
std::ostream &lhs, const NVector<T, TN> &rhs);
};
template<class T, unsigned int TN>
inline std::ostream& NVector<T, TN>::operator<<(
std::ostream &lhs, const NVector<T, TN> &rhs)
{
/* SOMETHING */
return lhs;
};
Ele produz a seguinte mensagem de erro:
aviso: declaração de amigo 'std :: ostream & operator << (std :: ostream &, const NVector &)' declara uma função não modelo [-Wnon-template-friend]
erro: 'std :: ostream & NVector :: operador << (std :: ostream &, const NVector &)' deve ter exatamente um argumento
Como resolver esse problema?
Muito obrigado.