névtér-összetétel használata
a programozás legjobb gyakorlata azt sugallja, hogy új adatokat vagy funkciókat kell elkülöníteni egy józanul elnevezett, egyedi névtérben, amikor lehetséges. Ezt előnynek tekintik a globális névtér mindent dömpingjével szemben, mivel akkor a névkeresés kifejezetten engedélyezhető vagy letiltható a fentiek szerint, a szimbólumokat következetesen összekeverik repetitivenaming előtagok vagy makrók stb.
vegyünk például egy projektet, amely a legtöbb osztályát namespace gtk
– ben határozza meg. Lehetőség van toadapt namespace gtk
a namespace std
segítségével egy C++-funkció callednamespace összetételét. Ez történik, ha a-deklaráció használata anamespace-definíció: az importált szimbólum(ok) importálódik a jelenleg aktív névtér(ek) be. Például:
namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}
ebben a példában a std::string
lesz importálva anamespace gtk
– be. Az eredmény az, hogy astd::string
belső névtér GTK csak használni string
, anélkül, hogy az explicit qualification.As astd::string
hozzáadott bónusz NEM kerül importálásra a globális névtérbe. Ezenkívül bonyolultabb elrendezést lehet készíteni a visszafelé kompatibilitás és a hordozhatóság érdekében, ahol ausing
-deklarációk az autoconf-teszteken alapuló makrókba csomagolhatók vagy “” vagy azaz using std::string;
(attól függően, hogy a rendszer rendelkezik-e libstdc++ std::
– ben vagy sem). (Karl Nelson és llewelly ötletei)