#includes innerhalb von namespaces
-
Hallo,
namespace MyNameSpace { #include <string> class MyClass { private: std::string MyString; //... }; }ist so etwas irgendwie möglich?
-
Ja, klar geht das. Die Frage ist nur, ob das wirklich sinnvoll ist.
#includeist ja eine Anweisung für den Präprozessor und schlussentlich wird ja lediglich der Inhalt des angegebenen Files hingepackt.
-
Prinzipiell kann man natürlich #includes in namespaces benutzen. Es handelt sich ja um eine einfache Textersetzung. Wie du aber bei deienm Beispiel siehst, ist das nicht unbedingt eine gute Idee, wenn die eingebundene Datei Sachen macht, die nicht innerhalb eines anderen namespace funktionieren...
-
Undefiniert im Falle von Standardheadern (17.4.2.1/3)
A translation unit shall include a header only outside of any external declaration or definition, ...
im obigen Fall befinden wir uns ja innerhalb einer namespace-Definition.