Renommer les espaces de noms

J'ai fait du C++ pour un long moment maintenant, mais j'ai juste dû répondre à la question, ce matin, je ne pouvais pas donner une réponse: "Est-il possible de créer des alias pour les espaces de noms en C++ ?"

Permettez-moi de donner un exemple. Disons que j'avais l'en-tête suivant:

namespace old
{
  class SomeClass {};
}

Qui, pour des raisons non précisées devait devenir:

namespace _new
{
  namespace nested
  {
    class SomeClass {}; //SomeClass hasn't changed
  }
}

Maintenant, si j'ai une vieille base de code qui fait référence à SomeClass, je peux rapidement (et salement) "fixer" le changement en ajoutant:

namespace old
{
  typedef _new::nested::SomeClass SomeClass;
}

Mais est-il un moyen d'importer tout de _new::nested en old sans avoir à typedef explicitement chaque type ?

Quelque chose de semblable à Python import * from ....

Merci.

  • new est peut-être un mauvais exemple pour un nom d'espace de noms. 😉
InformationsquelleAutor ereOn | 2011-05-24