Следующая реализация выдает ошибку: «ссылка на n1 неоднозначна»
namespace n1 // (0)
{
namespace n1
{
int x;
}
namespace n1
{
int y;
}
}
using namespace n1; // (1)
//using namespace n1::n1; // (2)
int main()
{
cout << n1::n1::x<<endl;
}
Комментируя (1) и используя (2), проблема решается.
Используя другое пространство имен в (0), будут работать варианты (1) и (2).
Любое объяснение?