Considerate i seguenti due affermazioni:"usa lo spazio dei nomi" all'interno di un altro spazio dei nomi equivalente ad un alias?
namespace foo = bar;
e
namespace foo {
using namespace bar;
}
sono quelle due affermazioni equivalenti, o ci sono alcune sottili differenze che non sono a conoscenza?
(Si noti che questa non è una domanda sullo stile di codifica - Sono solo interessato all'analisi in C++).
Ci scusiamo per il commento molto, molto tardi, ma ho pensato che altri potrebbero cercare. L'istruzione using bar namespace porta solo quelle cose definite in quel momento nello spazio dei nomi foo. In breve, può creare dipendenze di cattivo ordine. Vedere l'articolo n. 59 in Sutter/Alexandrescu per gli standard di codifica C++ –
@RobL: Un utilizzo di _declaration_ riporta solo i nomi dichiarati in quel momento. Quanto sopra è un uso di _directive_. Il primo è come una ridichiarazione dei nomi dal namespace nello scope corrente. Quest'ultimo è più come una regola da cercare, dicendo, se non lo trovi qui, controlla questo altro spazio dei nomi. –