portée d'un using namespace

Le
Doms
Bonjour,

j'aimerais savoir si il y a une regle pour la portée d'un using namespace.
Les tests que j'ai pu faire me laisser à croire que la portée d'un using
namespace est jusque la fin du fichier ou plus loin si le using namespace
pouvait avoir une portée limitée ?

Merci d'avance. Doms.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Michael DOUBEZ
Le #18454971
Doms wrote:
j'aimerais savoir si il y a une regle pour la portée d'un using
namespace.
Les tests que j'ai pu faire me laisser à croire que la portée d'un using
namespace est jusque la fin du fichier ou plus loin si le using
namespace pouvait avoir une portée limitée ?



Le "using namespace X;" injecte les noms du namespace X dans le
namespace/scope courant de l'unité de compilation (sauf dans le scope
d'une classe).

Typiquement:
- si c'est dans the namespace racine de l'unité de compilation (par
exemple après les headers), ce sera pour tout le fichier.
- si c'est dans une fonction ou un sous-block, ce sera pour cette
fonction ou ce sous-block
- si c'est dans un namespace Y alors dans tout le namespace Y, ses
sous namespaces et où il est utilisé:"using namespace Y;".

--
Michael
Doms
Le #18456001
Bonjour,

Typiquement:
- si c'est dans the namespace racine de l'unité de compilation (par exemple après les headers), ce sera pour tout le fichier.
- si c'est dans une fonction ou un sous-block, ce sera pour cette fonction ou ce sous-block



tiens, je vais regarder mes tests, j'ai du inclure un mauvais truc,
j'avais l'imrpession que ca n'etait pas restraint au scope...

Merci. Doms.
Michael DOUBEZ
Le #18456201
Doms wrote:
Bonjour,

Typiquement:
- si c'est dans the namespace racine de l'unité de compilation (par
exemple après les headers), ce sera pour tout le fichier.
- si c'est dans une fonction ou un sous-block, ce sera pour cette
fonction ou ce sous-block



tiens, je vais regarder mes tests, j'ai du inclure un mauvais truc,
j'avais l'imrpession que ca n'etait pas restraint au scope...



En tout cas avec un compilateur qui respecte le standard §7.3.4/2

A using-directive specifies that the names in the nominated namespace
*can be used in the scope in which the using-directive appears* after
the using-directive.[...]

--
Michael
Publicité
Poster une réponse
Anonyme