Je suis en train d'écrire une petite bibliothèque de matrice en C++ pour les opérations matricielles. Cependant mon compilateur se plaint, là où auparavant il n'en avait pas. Ce code a été laissé sur une étagère pendant 6 mois et entre les deux j'ai mis à jour mon ordinateur à partir de debian etch à lenny (g++ (Debian 4.3.2-1.1) 4.3.2 ) cependant j'ai le même problème sur un système Ubuntu avec le même g++.
Voici la partie pertinente de ma classe matrix:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
Et la "mise en œuvre":
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
C'est l'erreur donnée par le compilateur:
la matrice.rpc:459: erreur: 'std::ostream& Math::Matrice::operator<<(std::ostream&, const Math::Matrice&) " doit prendre exactement un argument
Je suis un peu confus par cette erreur, mais là encore mon C++ a eu un peu rouillé après avoir fait beaucoup de Java 6 mois. :-)