Я не вижу смысла помещать анонимное пространство имен в заголовочный файл. Я собрал стандартные и заголовки libstdc ++, не нашел анонимных пространств имен кроме одного в заголовке tuple
(C ++ 1x материал):
// A class (and instance) which can be used in 'tie' when an element
// of a tuple is not required
struct _Swallow_assign
{
template<class _Tp>
_Swallow_assign&
operator=(const _Tp&)
{ return *this; }
};
// TODO: Put this in some kind of shared file.
namespace
{
_Swallow_assign ignore;
}; // anonymous namespace
Это так, что вы можете сделать
std::tie(a, std::ignore, b) = some_tuple;
элементам some_tuple присваиваются переменные слева (см. здесь ), аналогичная техника используется для этого итератора. Второй элемент игнорируется.
Но, как говорится, он должен быть помещен в файл .cpp, и один экземпляр должен быть доступен всем пользователям. Тогда они поместили бы объявление об этом в заголовок следующим образом:
extern _Swallow_assign ignore;