Pourquoi sont anonymes espaces de noms utilisés et quels sont leurs avantages?

Je vient de rejoindre un nouveau C++ projet de logiciel et j'essaie de comprendre la conception. Le projet fait souvent l'utilisation des espaces de noms sans nom. Par exemple, quelque chose comme cela peut se produire dans un fichier de définition de classe:

//newusertype.cc
namespace {
  const int SIZE_OF_ARRAY_X;
  const int SIZE_OF_ARRAY_Y;
  bool getState(userType*,otherUserType*);
}

newusertype::newusertype(...) {...

Quelles sont les considérations de conception qui pourraient vous pousser à utiliser un sans nom d'espace de noms? Quels sont les avantages et les inconvénients?

InformationsquelleAutor Scottie T | 2008-12-10