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 положен в безымянный неймспейс? Это как-то упрощает программу, а не усложняет? Для чего это?


Ответы (0 шт):