C
volkard schrieb:
Änderst alle paar Minuten die Aufgabe. Verbirgst den eigentlichen Plan hinter leeren Beispielen. So nicht!
Wenn es eine Geheimsache ist, die so geheim ist, weil Du damit Geld verdienen willst
Tut mir ja leid, wenn ich diesen Eindruck erwecke, aber das ist nicht der Fall. Was heißt leere Beispiele? Ich versuche nur, das Posting nicht übermäßig aufzublähen. Wenn du keine Lust hast, mir zu helfen, niemand zwingt dich dazu. Wenn dein Unmut aber nur darauf beruht, dass ich zu wenig Informationen preisgebe, frag nach. Das ist bestimmt kein Geheimprojekt und ich werde versuchen jede Frage zufriedenstellend zu beantworten. Das Ziel ist immer noch Folgendes:
int main()
{
Interpreter preter;
preter.addFunction("foo", foo); // foo kann jetzt aus dem Script aufgerufen werden.
preter.runScript(script);
}
Und es ist eine Funktionssignatur für foo() gesucht, bei der ich
- beliebig viele long, double, std::string, übergeben kann und mindestens einen dieser Datentypen zurückgeben kann (bzw. 3 Funktionssignaturen würden natürlich auch gehen. Für jeden return-Typ eine.)
- Bei der ich nicht immer von Zahl nach String und zurück wandeln muss.
- Die möglichst praktisch in der Anwendung der übergebenen Funktion ist, soll heißen, foo() sollte möglichst leicht an ihre Parameter kommen.
- Die Reihenfolge der Parameter nicht verloren geht.
Also, die kann dein funktionsregisterklasse herausfiltern.
Das Ganze ist momentan so gedacht, dass ich erst mal alle Parameter die der Funktion im Script übergeben werden auslese und diese der Funktion dann auch übergebe. Was die dann damit macht ist ihre Sache. Nur funktioniert das mit void* natürlich nur bedingt, wenn im script steht foo(5); und foo aber denkt der Parameter wäre ein std::string.