C++ для чего делают вложенные неймспесы внутри безымянного неймспейса
Для чего в коде на C++ определения заворачивают в двойные неймспейсы вот например:
namespace
{
namespace vga
{
struct Cell
{
char symbol;
unsigned char color;
};
static_assert(sizeof(Cell) == sizeof(unsigned short));
static constexpr unsigned int addr = 0xB8000;
static constexpr unsigned char width = 80;
static constexpr unsigned char height = 25;
using Screen = Cell[height][width];
Screen& screen() noexcept
{
return *reinterpret_cast<Screen *>(addr);
}
}
}
Реализация записи символов в видеобуфер по адресу 0xB8000. Для чего namespace vga положен в безымянный неймспейс? Это как-то упрощает программу, а не усложняет? Для чего это?