Hallo Community!
Benötige für ein Projekt eine Klasse, die die Eigenschaft besitzt, dass per Funktionsname (std::string) eine jeweilige Funktion aufruft.
Das Ganze aber mit unterschiedlichen Parameter.
Hab mal folgendes Codesnippet auf Stack Overflow gefunden:
Quelle: https://stackoverflow.com/questions/19473313/how-to-call-a-function-by-its-name-stdstring-in-c
Problem bei diesem Code wäre, dass ich alle möglichen Funktionspointer definieren müsste.
Ich will das aber nicht so machen.
Könnte das eventuell mit einem Template und VARG funktionieren, oder hat wer eine andere Idee
wie ich das lösen könnte?
Vorweg vielen Dank!
Benötige für ein Projekt eine Klasse, die die Eigenschaft besitzt, dass per Funktionsname (std::string) eine jeweilige Funktion aufruft.
Das Ganze aber mit unterschiedlichen Parameter.
Hab mal folgendes Codesnippet auf Stack Overflow gefunden:
C++:
#include <iostream>
#include <map>
int add(int i, int j) { return i+j; }
int sub(int i, int j) { return i-j; }
typedef int (*FnPtr)(int, int);
int main() {
// initialization:
std::map<std::string, FnPtr> myMap;
myMap["add"] = add;
myMap["sub"] = sub;
// usage:
std::string s("add");
int res = myMap[s](2,3);
std::cout << res;
}
Problem bei diesem Code wäre, dass ich alle möglichen Funktionspointer definieren müsste.
Ich will das aber nicht so machen.
Könnte das eventuell mit einem Template und VARG funktionieren, oder hat wer eine andere Idee
wie ich das lösen könnte?
Vorweg vielen Dank!