Подтвердить что ты не робот

С++ вопрос о пространстве имен

Я работаю над некоторым кодом, написанным сотрудником, который больше не работает с компанией, и я нашел следующий код: (который я привел ниже)

namespace NsA { namespace NsB { namespace NsC {

    namespace { 
        class A { /*etc*/ };
        class B { /*etc*/ };
    }    

    namespace {
        class C { /*etc*/ };
    }
} } }

Я не понимаю цели команд пространства имен в строках 3 и 8.
Может кто-нибудь объяснить, что цель записи пространства имен без имени?
Благодаря

4b9b3361

Ответ 1

Это "анонимное пространство имен", которое создает скрытое имя пространства имен, которое гарантировано является уникальным для каждой единицы перевода (т.е. для файла CPP).

Это фактически означает, что все элементы внутри этого пространства имен скрыты вне этого блока компиляции. Их можно использовать только в том же файле. См. Также в этой статье о неназванных пространствах имен.