Template Klasse mit ggf. template Funktion



  • Hi,
    Ich möchte eine Klasse machen, die man je nach Wunsch auf Datentypen anpassen kann. Sie soll als Übergabe auch eine Funktion enthalten, die wiederum diesen Datentyp hat.Also in etwas so:

    template<typename A, int (*fun)(A)>
    class example{
    ...
    }
    

    Nun soll aber 'fun' ggf. noch von (während der Laufzeit ermittelten) Variablen abhängeng.
    z.B.

    struct StructExample {
     int variableA;
     int variableB;
    }
    

    Wie mache ich nun die Klasse oben von der Funktion abhängig, die wiederum von dem Struct abhängig ist?

    naive Weg wäre ggf.

    template<typename A, typename B, int (*fun)(A, B)>
    class example{
    ...
    }
    

    Jedoch ist die example Klasse unabhängig von B. Und jede potentielle Übergabe-Funktion 'fun' hat ihren (meist) eigenen Typ B und wäre nicht kompatible mit einem anderen. Also auch jeder Typ B hatte die dazu passende Funktion fun.

    Optimal wäre, wenn man dann auch noch Funktionen übergeben könnte, die unabhängig von einem anderen Datentyp sind.


Anmelden zum Antworten