Ich schreibe eine kleine Matrixbibliothek in C ++ für Matrixoperationen. Mein Compiler beschwert sich jedoch, wo es vorher nicht war. Dieser Code wurde 6 Monate lang in einem Regal belassen und dazwischen habe ich meinen Computer von Debian Etch auf Lenny (g ++ (Debian 4.3.2-1.1) 4.3.2) aktualisiert. Auf einem Ubuntu-System mit demselben g ++ habe ich jedoch das gleiche Problem .
Hier ist der relevante Teil meiner Matrixklasse:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
Und die "Implementierung":
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
Dies ist der vom Compiler angegebene Fehler:
matrix.cpp: 459: Fehler: 'std :: ostream & Math :: Matrix :: operator << (std :: ostream &, const Math :: Matrix &)' muss genau ein Argument annehmen
Ich bin ein bisschen verwirrt von diesem Fehler, aber andererseits ist mein C ++ etwas rostig geworden, nachdem ich in diesen 6 Monaten viel Java gemacht habe. :-)