我遇到类似this question一个问题,但有一个额外的深度:指的是表弟的命名空间
namespace root { namespace parent1 { namespace childa {
class hard_to_get_at{};
}}}
namespace root { namespace parent2 { namespace childb {
// how do I refer refer to namespace childb relative to the current namespace ?
void someFunc()
{
parent1::childa::hard_to_get_at instance; // does not work
}
}}}
当我试图上面,我得到一个错误
错误:“根: :parent2 :: childb :: parent1 :: childa'还没有宣布
我不明白为什么这不起作用,我得到它应该的印象。我真的不想在someFunc
函数中使用使用声明。
这是发生在G ++ 4.5用C++ 0x中选择启用
您可能在代码中缺少包含,或者在问题中存在大量重要细节。如果包含是正确的,那么你可能有多个名称空间/类具有相同的名称,编译器选择了不正确的名称空间。 [检查此](http://ideone.com/bsy8q) – 2012-04-15 20:21:21
您发布的代码为我编译罚款。 – 2012-04-15 20:22:29