J'ai un problème surcharger l'opérateur de flux <<
et je ne trouve pas la solution:C++: Déclaration ami « déclare une fonction non-modèle
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;
};
Il produit le message d'erreur suivant:
warning : friend declaration ‘std::ostream& operator<<(std::ostream&, const NVector&)’ declares a non-template function [-Wnon-template-friend]
error: ‘std::ostream& NVector::operator<<(std::ostream&, const NVector&)’ must take exactly one argument
Comment résoudre ce problème?
Merci beaucoup.
Un ami n'est pas membre, et 'operator <<' ne devrait pas être membre. Supprimez la résolution dans l'en-tête de définition. – chris