Methodenpointer auf Templatemethode
-
Moin moin,
ich brauche einen Methodenpointer auf eine Templatemethode:
Mein Ansatz ist:
// methode template <typename T> void test(T t) { } // pointer template <typename T> void (*t)(T) = &test;Dies gibt aber beim Kompilieren folgende Fehlermeldung:
Fehler: Templatedeklaration von »void (* t)(T)«die Variane ohne Template kompiliert:
// methode void test(int t) { } // pointer void (*t)(int) = &test;Was mach ich falsch? Wie muss es richtig heißen?
cu
Thundernail
-
Das geht nicht.
Du kannst einen Zeiger auf genau eine Instanz eines Templates machen.
Du kannst auch ein Template als "Template-Template-Parameter" übergeben.Du kannst aber nicht einen Zeiger machen der auf das Template an sich zeigt. Das wäre im Prinzip dasselbe wie virtuelle Template Funktionen. Beides ist in C++ nicht möglich, da C++ 1.) statisch typisiert ist und 2.) keine on-demand Code Erzeugung unterstützt (bzw. sagen wir so: keine Features die nur mit on-demand Code Erzeugung zu implementieren wären).