С точки зрения компилятора C ++, пространство имен - это просто соглашение об оформлении имени?
Я думаю, что да.Это просто украшение имени в конце.
Для этого компилятор делает много вещей.При выборе имени он выбирает правильные пространства имен (возможно, из многих).
Например,
namespace X
{
void f(); //compiler chooses X only when decorating f()
namespace Y
{
void f(); //compiler chooses X and Y when decorating f()
void g() //compiler chooses X and Y when decorating g()
{
f(); //which f? Compiler decorates it with both X and Y.
X::f(); //which f? Compiler decorates it with X only.
}
}
}