Perché il C ++ ha fatto una distinzione tra globi statici (collegamento interno) e simboli in uno spazio dei nomi senza nome (collegamento esterno, ma non è possibile fare riferimento ad esso dall'esterno), quando è stato introdotto quest'ultimo?
Alcuni di questi motivi sono ancora validi o ce ne sono di nuovi?
Ci sono posti in cui sono ancora diversi ma la regola arbitraria che devono essere le unioni globali anonime (o spaziali)
static
e quali sono?Per i punti bonus, se non ci sono buoni motivi per cui sono diversi, c'è una richiesta per renderli equivalenti?
Quando il C ++ ha introdotto gli spazi dei nomi (C ++ 98), e in particolare gli spazi dei nomi senza nome, i globi statici sono stati deprecati come obsoleti e inferiori alla nuova cosa in un attacco di entusiasmo, sebbene ciò sia stato ripristinato con C ++ 11 :
Deprecazione della parola chiave statica ... non piu?
Prima di C ++ 11, i simboli con collegamento interno non potevano essere utilizzati come argomenti modello: Perché C ++ 03 richiedeva che i parametri modello avessero un collegamento esterno?