В C++ анонимное пространство имен эквивалентно:Что делать, если мне нужно анонимное пространство имен в заголовке?
namespace $$$$ {
//something
}
using namespace $$$$;
Где $$$$ является своего рода уникальным идентификатором. Анонимное пространство имен полезно для кода, который не следует видеть вне модуля компиляции.
До сих пор так хорошо, однако недавно я начал писать код с шаблонами, такой код должен быть в заголовках, поэтому использование анонимных пространств имен не имеет большого смысла, поскольку простое включение заголовка аннулирует эффект изоляции.
Тогда возникает вопрос, каков предложенный способ в этом случае? Я начал использовать именованное пространство имен Private. Это на самом деле не останавливает всех, кто хочет использовать идентификаторы внутри, но по крайней мере он уменьшает конфликты имен до id «Private».
Есть ли лучшие способы? Предложения?
AFAIK, что все, что вы можете сделать, библиотеки шаблонов часто используют пространство имен, таких как 'detail' для этой цели. – user657267
В идеале весь ваш код должен находиться в каком-то пространстве имен. Поместите свои шаблоны в какое-то пространство имен под названием Utility, или Alpha или MyWork или что-то в этом роде. И включите функции помощи. –
Thanks user657267; это было подтверждение, которое я искал. Я боялся, что мне не хватает очевидного. –