Erstellen neuer Klassen / Member zur Laufzeit in in C ++ verwendeten Skriptsprachen [closed]

Ich habe ein paar Monate lang an diesem Problem gearbeitet und wollte jetzt wirklich eine richtige Lösung finden, die den Fall behandelt, dass neue benutzerdefinierte Klassen (und Instanzen dieser Klassen) mit Member-Funktionen erstellt werden / properties zur Laufzeit in einem C ++ 11-Projekt.

isher habe ich SWIG verwendet (früher mit Python, jetzt mit Lua, erforscht Squirrel). Wie alle C ++ - Bindungs- / Einbettungsbibliotheken, auf die ich bisher gestoßen bin (Luna *, luabinder, luabind, OOLua, Sqrat / Sqext, Squall), erwarten alle, dass Ihre Klassen vor der Codeausführung in C ++ vordefiniert werden, da sie entweder auf einem Präprozessor basieren Direktiven oder Vorlagen.

So meine Frage ist, gibt es da draußen Bibliotheken, die einen prozeduralen Ansatz für das Packen einer Sprache verwenden, oder gibt es gute Tutorials / Beispiele für etwas wie Lua oder Eichhörnchen, die man für die Erstellung von benutzerdefinierten Namen empfehlen würde Klassen mit benutzerdefinierten Elementen und Funktionen? Irgendeine Richtung wäre sehr dankbar.

Sogar ein einfaches Beispiel, das zeigt, wie eine benutzerdefinierte Klasse mit einer Funktion und einer Eigenschaft in Lua oder Squirrel über die jeweiligen C ++ - APIs ohne die Verwendung von Makros / Vorlagen / dynamisch generiertem Code erstellt wird, wäre äußerst hilfreich.

EDIT: Ich bin so weit gegangen, ein @ zu erstelleInstance Klasse, die ein @ enthästd::vector der Schlüssel / Wert-Paare der Mitglieder und ein Mitglied, das den Typ angibt, damit Funktionen nachgeschlagen werden können. Es gibt jedoch nur sehr wenig Dokumentation zum Erstellen einfacher Klassen in Lua / Squirrel ohne die Verwendung von statischem Code.

EDIT 2: Ich hätte gerne eine Lösung, die auf jeder Plattform funktioniert und nicht dynamisch verknüpft werden muss.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage