template + vector + static



  • Hi,
    warum funktioniert folgendes Konstrukt nicht?

    #include <vector>
    
    template<typename T>
    class A
    {
    	class B
    	{
    
    	};
    
    	static std::vector<B> data;
    };
    
    template<typename T>
    std::vector<A<T>::B> A<T>::data;
    
    int main()
    {
    	A<int> a;
    }
    

    Ergibt den Fehler (VS, GCC):
    error C2923: "std::vector": "A<T>::B" ist kein gültiges template-Typargument für den _Ty-Parameter.

    Lässt sich das beheben?

    gretez KN4CK3R


  • Mod

    template<typename T>
    std::vector<typename A<T>::B> A<T>::data;
    
    A<int> a;
    

    führt nicht dazu, dass statische Member instantiiert werden (falls das die Absicht gewesen sein sollte)



  • danke, hatte ich irgendwie vergessen -.- 🙄

    greetz KN4CK3R


Anmelden zum Antworten