Poiché l'OP ha richiesto specificamente una citazione dallo standard, ecco la mia risposta che include la citazione pertinente dallo standard.
Ogni specializzazione avrà la propria copia di myvar
che ha senso dal momento che ognuno è il proprio distinto classe. Il ++ progetto di norma C nella sezione 14.7
esemplificazione Template e specializzazione paragrafo dice (sottolineatura mia):
Ogni classe template specializzazione un'istanza da un modello ha la propria copia di tutti i membri statici.
[ Example:
template<class T> class X {
static T s;
};
template<class T> T X<T>::s = 0;
X<int> aa;
X<char*> bb;
X ha un membro statico s di tipo int e X ha un membro statico s di tipo char *. -end esempio]
fonte
2013-10-09 14:36:15
Risposta semplice, due – john
@ShafikYaghmour Sto scrivendo un manuale per un enorme insieme di classi, e questa domanda mi è venuta in mente, perché ho una funzione statica che imposta alcune variabili statiche, e ho pensato che potesse essere una buona domanda per il pubblico. Probabilmente sapere cosa dice lo standard a riguardo è meglio che provare. –
@TheQuantumPhysicist Ok, questo ha senso, ho trovato la citazione dallo standard che dice che ogni specializzazione avrà una copia di qualsiasi membro statico. –