Si supponga che ho dichiarato una funzione (o classe, non importa) in un file di intestazione, che fa parte del namespace foo:Best practice: usare lo spazio dei nomi o riaprire lo spazio dei nomi?
namespace foo
{
void bar();
…
}
Per molto tempo sono stato la riapertura dello spazio dei nomi quando ho è stata la definizione della funzione in un file cpp:
namespace foo
{
void bar()
{
doSomething();
…
}
}
questo è perché ho imparato in questo modo ed è stato utilizzato in un progetto su cui stavo lavorando. Non ho mai veramente se su di esso fino a poco tempo, quando sono incappato in un progetto che ha usato la direttiva using invece:
using namespace foo;
void bar()
{
doSomething();
…
}
Infine c'è una possibilità di utilizzare il nome completo. Lo trovo piuttosto noioso, specialmente quando sono coinvolte classi con molti membri. A mio avviso, non ha molto senso quando tutto il contenuto del file fa parte di uno spazio dei nomi.
void foo::bar()
{
doSomething();
…
}
Quindi la mia domanda è quale si dovrebbe preferire e perché? Soprattutto per quanto riguarda le prime due opzioni (usando la direttiva vs riapri lo spazio dei nomi).
vorrei dire che è una questione di preferenze personali.Io stesso uso un mix tra la prima e l'ultima delle vostre alternative. –
Sono d'accordo che si tratta di preferenze personali. 'foo :: bar' è ripetitivo ma greppable, anche se potrebbe essere irrilevante se le persone cercano sempre la tua fonte usando un IDE. –
È come chiedere se sia meglio usare tab o 4 spazi. ** Non preoccuparti delle piccole cose. ** :) – LihO