statische Templatefunktion im Template aufrufen



  • Hallo,

    wie kann ich in einer Template-Klasse eine statische Funktion aufrufen?

    template <typename T>
    class Memory
    {
        public:
    
    	static inline T* safeAllocateMemory(const u_long Size)
    	{
               // was machen
    	}
    
    	static inline T** safeAllocateMemory(const u_long Width, const u_long Height)
    	{
                    // hierhin zeigt die Fehlermeldung
    		T **tmpData = Memory<T>::safeAllocateMemory<T*>(Height);
    	}
    
    };
    
    aufruf soll so sein:
    
    int  *mem = Memory<int>::safeAllocateMemory(100);
    int **mem = Memory<int>::safeAllocateMemory(100, 100);
    

    allerdings liefert der 2. aufruf fehler:

    Ungültige Verwendung von typedef 'T'.

    Danke


  • Administrator

    Diese Zeile:

    T **tmpData = Memory<T>::safeAllocateMemory<T*>(Height);
    

    Sollte wohl eher so lauten:

    T **tmpData = Memory<T*>::safeAllocateMemory(Height);
    

    Die Funktion ist schliesslich kein Template, nur die Klasse 😉

    Grüssli



  • ach mensch, vielen dank manchmal hat man aber auch tomaten auf den augen.


Anmelden zum Antworten