Анонимное пространство имен - это единственное, что не позволяет объявлению класса загрязнять глобальную область видимости. Очень полезно при определении класса в файле .cpp.
ользовалstatic
ключевое слово долгое время для определения внутренней связи. Позже я переключился на стиль C ++, заключающийся в размещении локальных вещей в анонимных пространствах имен.
Однако теперь, когда я несколько лет работал с анонимными пространствами имен, я начинаю думать, чтоstatic
с ключевым словом намного проще работать!
Общая проблема заключается в том, что у меня есть этот шаблон:
namespace {
// ...five pages of code...
} // namespace
Чтобы увидеть, имеет ли определенная функция внутреннюю или внешнюю связь, мне нужно много прокрутить, в отличие от старого стиля C, где я мог просто проверить, была ли функция / объектstatic
перед ней.
Я знаю, что есть вещи, которые делают анонимные пространства именstatic
не могу - скрыть typedefs - но лично мне это не очень интересно, во всяком случае.
Что вы думаете об этом? Является ли победа анонимных пространств имен настолько большой, что она гарантирует снижение читабельности? Или я не прав?