Utilizar o espaço de Composição
Melhores práticas de programação, sugere seqüestro de novos dados orfunctionality em uma sadia-o nome, único espaço de nomes wheneverpossible. Isto é considerado uma vantagem sobre o despejo de tudo no espaço de nomes global, uma vez que a pesquisa de nomes pode ser explicitamente habilitada como acima, os símbolos são sistematicamente mutilados sem prefixos repetitivos ou macros, etc.
por exemplo, considere um projeto que define a maioria de suas classes em namespace gtk. It is possible toadapt namespace gtk to namespace std by using a C++ – feature callednamespace composition. Isto é o que acontece se uma declaração de utilização é colocada num espaço-definição: o(s) símbolo(s) importado (s) é importado (s) para o (S) espaço (s) de nomes actualmente activo (s). Por exemplo:
namespace gtk{ using std::string; using std::tr1::array; class Window { ... };}
neste exemplo, std::string é importado paranamespace gtk. O resultado é que o uso destd::string dentro do espaço de nomes gtk pode apenas usar string, sem o explícito qualification.As um bônus adicionado,std::string não é importado para o espaço de nomes global. Além disso, um arranjo mais elaborado pode ser feito para a compatibilidade e portabilidade de trás para a frente, em que as declaraçõesusing-podem ser embrulhadas em macros que são definidos com base em testes de autoconf tanto para “” ou i.e. using std::string; (dependendo se o sistema temlibstdc++ em std:: ou não). (ideias de llewelly e Karl Nelson)