我正在努力让我的班级成为其父命名空间中模板的朋友。有人可以解释我做错了什么:
以下是我在 MSVC8 (Visual Studio 2005) 上的尝试及其错误:
namespace a {
namespace b {
template<typename T>
class x;
namespace c {
class y
{
template<typename T>
friend class x;
...
};
}
}}
错误 C2888: a::b::x
: 符号不能在命名空间中定义c
namespace a {
namespace b {
template<typename T>
class x;
namespace c {
class y
{
template<typename T>
friend class ::a::b::x;
...
};
}
}}
错误 C2888: a::b::x
: 符号不能在命名空间中定义c
namespace a {
namespace b {
namespace c {
class y
{
template<typename T>
friend class ::a::b::x;
...
};
}
}}
错误 C2039: x
: 不是a::b
我不能只包含包含的头文件,class x
因为它取决于class y
导致循环包含。