[Templates] Sowas möglich?



  • Hm ja, ich möchte mir eine Menge Schreibarbeit ersparen, und ich glaube Templates wären dafür ganz gut geeignet^^

    Ein Beispiel ist wohl am Aussagekräftigsten:

    class a
    {
    	public:
    		enum types { FOO, BAR, usw };
    };
    
    template<typename T>
    T::types bla()
    {
    	return T::FOO;
    }
    
    int main(int argc, char *argv[])
    {
    	bla<a>();
    }
    

    Ich möchte - wie man hoffentlich sehen kann - einen Member von T zurückgeben.

    Dabei spuckt mir GCC jedoch einen Syntax-Error aus:

    error: expected constructor, destructor, or type conversion before 'bla' [Zeile 8]

    Jetzt frage ich mich, ob sowas überhaupt möglich ist, und wenn nicht, ob es da eine andere Möglichkeit oder Umwege gibt.
    (Und wenn es geht, wäre es toll, wenn man mir sagen könnte, wie es aussehen müsste :D)


  • Mod

    template<typename T>
    typename T::types bla()
    


  • Danke, du bist mein Held!

    (Alleine wäre ich da niemals draufgekommen 🙄)


Anmelden zum Antworten