2014-04-07 9 views
6

È questo il modo corretto di inizializzare i membri dei dati statici delle classi del modello?È questo il modo corretto per inizializzare i membri dei dati statici delle classi template?

template <typename T> 
class Temp 
{ 
public: 
    static unsigned int x; 
}; 

template <typename T> 
unsigned int Temp<T>::x = 0; 
+0

Beh, funziona come previsto? –

+2

possibile duplicato di [membro modello statico C++, un'istanza per ogni tipo di modello?] (Http://stackoverflow.com/questions/2220975/c-static-template-member-one-instance-for-each-template-type) – legends2k

+0

@ legends2k: Ovviamente non sono la stessa domanda. –

risposta

7

Sì. Sì.

[C++11: 14.5.1.3/1] Una definizione per un membro di dati static può essere fornito in un ambito spazio dei nomi che racchiude la definizione del modello di classe del membro statico. [Esempio:

template<class T> class X { 
    static T s; 
}; 

template<class T> T X<T>::s = 0; 

-end esempio]

+4

@Downvoter: cura di spiegare? –

Problemi correlati