in C++ un namespace anonimo è equivalente a:Cosa succede se ho bisogno di spazio dei nomi anonimo in un'intestazione?
namespace $$$$ {
//something
}
using namespace $$$$;
Dove $$$$ è una sorta di identificativo univoco. Lo spazio dei nomi anonimo è quindi utile per il codice che non dovrebbe essere visto al di fuori dell'unità di compilazione.
Fin qui tutto bene, ma di recente ho iniziato a scrivere del codice con i modelli, tale codice deve essere nelle intestazioni così utilizzando namespace anonimi non ha molto senso in quanto il semplice inserimento del intestazione annullare l'effetto di isolamento.
Quindi la domanda è, qual è il modo consigliato in questo caso? Ho iniziato a utilizzare un namespace chiamato Private. In realtà non blocca nessuno che voglia utilizzare gli identificatori all'interno, ma almeno riduce le incompatibilità del nome all'id "Privato".
Ci sono modi migliori? Suggerimenti?
AFAIK che tutto si può fare, librerie di template usano spesso spazi dei nomi come 'detail' per questo scopo. – user657267
Idealmente tutto il codice dovrebbe essere in una sorta di spazio dei nomi. Metti i tuoi modelli in una sorta di spazio dei nomi chiamato Utility, o Alpha o MyWork o qualcosa del genere. E metti anche le funzioni di aiuto. –
Grazie user657267; quella era la conferma che stavo cercando. Avevo paura che mi mancasse l'ovvio. –