-
Perché C ++ ha fatto distinzione tra globals statici (linkage interno) e simboli in uno spazio dei nomi senza nome (linkage esterno, ma non c'è modo di riferirsi da esso all'esterno comunque), quando si introduce quest'ultimo?
-
Alcuni di questi motivi sono ancora validi o ce ne sono di nuovi?
-
Ci sono ancora posti dove sono ancora diversi ma la regola arbitraria che i sindacati globali anonimi (o namespace) devono essere
static
, e cosa sono? -
Per i punti bonus, se non ci sono buone ragioni per farli essere diversi, c'è una richiesta per renderli equivalenti?
Quando C ++ ha introdotto spazi dei nomi (C ++ 98), e in particolare spazi dei nomi senza nome, i globals statici sono stati deprecati come obsoleti e inferiori alla nuova cosa in un momento di entusiasmo, sebbene fosse ripristinato con C ++ 11 :
Deprecazione della parola chiave statica ... non più?
Prima del C ++ 11, i simboli con collegamento interno non potevano essere utilizzati come argomenti del modello: Perché C ++ 03 richiedeva i parametri del modello per avere un collegamento esterno?