Согласно Страуструпу, вы должны использовать его в тех местах, где в старом С вы бы сделали static
глобал.Идея состоит в том, что рассматриваемые элементы могут быть «глобальными» для исходного файла, в котором они находятся, но не загрязнять пространство имен любых других исходных файлов в вашей компиляции.не будет создавать static
глобалы в C ++ .Вместо этого вы должны использовать безымянные пространства имен.
Я обнаружил некоторые ситуации, когда они полезны в заголовочных файлах, но это должно быть редко.Главным образом я думаю для объявления бросаемых исключений.В этом случае рассматриваемые определения будут глобальными для всего, что #include
с этим заголовком, но не для вещей, которые этого не делают.