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