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.