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 ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michael DOUBEZ
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 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;".
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
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.
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...
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
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
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.[...]
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.[...]