Source files
SF.22
Используйте безымянное (анонимное) пространство имён для всех внутренних/неэкспортируемых сущностей
Причина
Ничто внешнее не может зависеть от сущности во вложенном безымянном пространстве имён. Рассмотрите возможность помещения каждого определения в исходном файле реализации в безымянное пространство имён, если только это не определение «внешней/экспортируемой» сущности.
Пример (плохой)
static int f();
int g();
static bool h();
int k();
Пример (хороший)
namespace {
int f();
bool h();
}
int g();
int k();
Пример
Класс API и его члены не могут находиться в безымянном пространстве имён; но любой «вспомогательный» класс или функция, определённые в исходном файле реализации, должны иметь область видимости безымянного пространства имён.
???
Контроль
- ???