我有以下命名空间和类层次结构:
namespace Ns1 {
class Outer {
private:
class Inner {
};
QSet<Inner> set;
};
}
现在我需要声明一个全局函数:
uint qHash(Ns1::Outer::Inner const& el);
bool operator==(Ns1::Outer::Inner const& el1,
Ns1::Outer::Inner const& el);
所以函数必须是 Outer 和 Inner 的朋友。问题并表明该函数在全局范围内:
friend uint qHash(Ns1::Outer::Inner const& el);
friend operator==(Ns1::Outer::Inner const& el1,
Ns1::Outer::Inner const& el);
我无法处理这种情况下的前向声明。有什么解决办法吗?