C ++: declaración de amigo 'declara una función no de plantilla
Tengo un problema para sobrecargar el<<
Operador de streaming y no encuentro la solución:
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;
};
Produce el siguiente mensaje de error:
advertencia: declaración de amigo 'std :: ostream & operator << (std :: ostream &, const NVector &)' declara una función que no es de plantilla [-Wnon-template-friend]
error: 'std :: ostream & NVector :: operator << (std :: ostream &, const NVector &)' debe tomar exactamente un argumento
¿Cómo resolver ese problema?
Muchas gracias.