Я пишу небольшую матричную библиотеку в С++ для операций с матрицами. Однако мой компилятор жалуется, где раньше этого не было. Этот код остался на полке в течение 6 месяцев, а между мной я обновил свой компьютер от debian etch до lenny (g++ (Debian 4.3.2-1.1) 4.3.2 ) однако у меня такая же проблема в системе Ubuntu с тем же g++.
Вот соответствующая часть моего матричного класса:
namespace Math
{
class Matrix
{
public:
[...]
friend std::ostream& operator<< (std::ostream& stream, const Matrix& matrix);
}
}
И "реализация":
using namespace Math;
std::ostream& Matrix::operator <<(std::ostream& stream, const Matrix& matrix) {
[...]
}
Это ошибка, заданная компилятором:
matrix.cpp: 459: ошибка: 'std:: ostream & Math:: Матрица:: Оператор < < (станд:: ostream &, const Math:: Matrix &) 'должен принимать ровно один аргумент
Я немного смущен этой ошибкой, но опять же мой С++ стал немного ржавым после того, как много Java за эти 6 месяцев.: -)