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. 😉
Vous devez vous connecter pour publier un commentaire.
Exemple à Ideone.
Ou si vous voulez vraiment un réel alias:
Exemple à Ideone.
nested
espace de noms est un meilleur match que la surcharge dans l'espace de noms courant, il va soudainement changer son pick)Ce:
semble être ce que vous voulez.