Spazi dei nomi

Utilizzo della composizione dello spazio dei nomi

Le migliori pratiche nella programmazione suggeriscono di sequestrare nuovi dati o funzionalità in uno spazio dei nomi univoco e con un nome sano quando possibile. Questo è considerato un vantaggio rispetto al dumping di tutto nello spazio dei nomi globale, poiché la ricerca del nome può essere abilitata esplicitamente o abilitata come sopra, i simboli sono costantemente storpiati senza prefissi o macro ripetitivi, ecc.

Ad esempio, si consideri un progetto che definisce la maggior parte delle sue classi in namespace gtk. È possibile adattare namespace gtk a namespace std utilizzando una composizione C++-feature callednamespace. Questo è ciò che accade se una dichiarazione di utilizzo viene inserita in una definizione di spazio-spazio: i simboli importati vengono importati nello spazio dei nomi attualmente attivo. Ad esempio:

namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}

In questo esempio, std::string viene importato innamespace gtk. Il risultato è che l’uso di std::string all’interno dello spazio dei nomi gtk può semplicemente usare string, senza l’esplicito qualification.As un ulteriore vantaggio,std::string non viene importato nello spazio dei nomi globale. Inoltre, una disposizione più elaborata può essere fatta per la retrocompatibilità e la portabilità, per cui le dichiarazioni using-possono essere racchiuse in macro impostate in base a autoconf-test su “” o cioè using std::string; (a seconda che il sistema haslibstdc++ in std:: o meno). (idee Fromlewelly e Karl Nelson)

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.

Previous post L’età d’oro della TV è finita
Next post Le app di monitoraggio del periodo non sono per le donne