La définition d'une classe à l'intérieur d'un espace de noms
Est-il une manière plus succincte pour définir une classe dans un espace de noms que ceci:
namespace ns { class A {}; }
J'espérais quelque chose comme class ns::A {};
marcherait, mais hélas pas.
Vous devez vous connecter pour publier un commentaire.
Vous êtes proche, vous pouvez déclarer avant la classe dans l'espace de noms et de définir ensuite à l'extérieur, si vous voulez:
Ce que vous ne pouvez pas faire est de définir la classe dans l'espace de noms sans les membres, puis de définir la classe de nouveau en dehors de l'espace de noms. Qui contrevient à l'Une Définition de la Règle (ou somesuch non-sens).
namespace ns { class A {}; }
mais c'est probablement juste une opinion personnelle.Vous pouvez le faire, mais ce n'est pas vraiment plus succinct.
Ou
La section, vous lire est: est-ce
Note le terme -- déclaration de manière D. Shawley (et son exemple) est correct.
Non vous ne pouvez pas. Pour citer le C++ standard, la section 3.3.5:
De sorte que la déclaration doit être à l'intérieur d'un espace de noms bloc - la définition peut bien sûr être à l'extérieur.