Olá.
O que acontece é que quando você especifica exatamente de onde vem cada coisa, você melhora a compreensão do seu código por outras pessoas, já que elas saberão onde buscar a documentação para os símbolos usados. A biblioteca padrão do C++, a std
, é bem rica e está cada vez mais recebendo novas implementações. Em um código que usa de diferentes bibliotecas, acaba ficando confuso para saber de onde vem um componente qualquer que você não conhece. Vira uma confusão saber se algo veio da biblioteca padrão ou de alguma biblioteca externa que foi adicionada ao código.
Além disso, há a questão de duplicidade. Por exemplo, duas bibliotecas no seu código podem fazer uso de um símbolo chamado signal
. Quando você especifica qual signal está usando, você evita problemas:
mylib::signal("x");
otherlib::signal(60);
Mas sem o uso dos namespaces, fica bem problemático para saber de onde vem cada coisa, e você pode acabar por tentar usar o símbolo errado em certos lugares. O código pode não executar, e fica mais complicado para achar o erro depois.
Não fica "bonito" o uso de std:: no código, além de outros namespaces, mas certamente melhora muito a compreensão e evita problemas lá na frente.