static-Member in Templateklassen



  • Ich kämpfe mit folgendem Problem:
    (vereinfacht)

    template <class T>
    class Foo
    {
    public:
    	static int bar;
    };
    
    void main ()
    {
    	cout<<Foo<int>::bar<<endl;
    }
    

    Wie zu erwarten, spuckt der Compiler aus:

    error LNK2001: Nichtaufgeloestes externes Symbol "public: static int Foo<int>::bar" (?bar@?$Foo@H@@2HA)
    

    Gibt es irgendeine Möglichkeit, static-Member in Templateklassen zu verwenden, außer sich dämlich zu schreiben mit

    int Foo<int>::bar = 0;
    int Foo<float>::bar = 0;
    


  • template<typename T>
    int Foo<T>::bar;
    

    schonmal probiert?


Anmelden zum Antworten