В настоящее время следующий код не работает:Друг оператор в другом пространстве имен
namespace inner
{
struct Test
{
Test() : n(0) { }
friend int ::operator+(const Test& a, const Test& b);
private:
int n;
};
}
int operator+(const inner::Test& a, const inner::Test& b)
{
return a.n + b.n;
}
и ошибка, я получаю
error: 'int operator+(const inner::Test&, const inner::Test&)' should have been declared inside '::'
friend int ::operator+(const Test& a, const Test& b);
^
Я думал qualifing пространства имен будет решить эту проблему, но это не делает , Какое обходное решение?
(Это как раз сообщение об ошибке: вам нужно объявление в '::') – o11c