Namespace wrapper
-
hi,
kann man einer datei, die keine namespaces hat, einfach einen umlegen?
also so:... namespace EXT { #include "ExterneDatei.h" }grüssli
-
ausprobieren?
-
...einfach einen Umlegen ?
Wo kommen wir den da hin, Wild Wild West

-
Man kann. Ich habe es jedenfalls schon gemacht und es hat auch funktionert.
Warum auch nicht, der Compiler kriegt das ja gar nicht zu sehen, die Datei wird vom Präprozessor an der Stelle eingefügt.
-
Ein include ist eine reine Textersetzung. Nun überleg mal.
-
DollyDuplex schrieb:
Man kann. Ich habe es jedenfalls schon gemacht und es hat auch funktionert.
Mit Templates oder mit ner Lib?
-
finix schrieb:
DollyDuplex schrieb:
Man kann. Ich habe es jedenfalls schon gemacht und es hat auch funktionert.
Mit Templates oder mit ner Lib?
Sowohl mit 'normalem' Code als auch mit Templates. In einer Bibliothek funktioniert es glaub nicht (zumindest kannst beim holen der Einsprungsadresse als Symbol da nicht den 'vollen' Namen angeben).
-
geht fast immer mit dateien, die nicht mit namespaces arbeiten. also allen alten sozusagen.
mach ich auch manchmal.
-
Ich hab Templates als Beispiel genommen da diese in aller Regel auch im Header implementiert sind. Worauf ich hinaus wollte:
// lib_foo.hpp struct foo { void blob(); }; // lib_foo.cpp void foo::blob() { } // app.cpp namespace ext { #include "lib_foo.hpp" } int main() { ext::foo bar; bar.blob(); } //----------------------------- >compile lib... OK >create lib... OK >compile app... OK >link app... huh?