私はこの質問に似た問題を抱えていますが、1つの追加の深さがあります:
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
}
}}}
上記を試したところ、エラーが発生しました
エラー: 'root::parent2::childb::parent1::childa' が宣言されていません
これが機能しない理由がわかりません。そうすべきだという印象を受けます。関数内に using 宣言を入れる必要は本当にありませんsomeFunc
。
これは、c++0x オプションが有効になっている g++ 4.5 で発生しています。