template mit non-static function



  • Hi,
    eine Klasse soll mit einer variablen Funktion arbeiten können.
    Diese Funktion hängt von ihrern Parametern (die alle die selbe Klasse sind) ab und (ggf.) auch von voher definierten Werten.

    Also in etwa so

    template<typename T>
    class classFun
    {
        int var = 42;
        classFun(int val): var(val){}
    
        int fun(T t){
           return t+var;
        }
    }
    
    template<typename T, int(*fun)(T)>
    class classCode
    {
       //code
    }
    
    void main(){
    
      classCode<int, classFun.fun> = asdf;
    
    }
    

    Das geht verständlicher Weise nicht, da classFun.fun nicht const ist. Wie würde man sowas richtig machen?



  • Warum willst du den Fkt Pointer als Template parameter übergeben? Ich würde der Klasse die mit variablen Funktionen klar kommen soll einen std::function member mit geben. Dann kann man beim Erstellen eines Objektes z.B. eine Lambda Expression übergeben.


Log in to reply