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)