J'ai utilisé SWIG pour lier un ensemble de classes à lua. Je sais que le C++ lui-même ne supporte pas les correctifs de singe, et je ne cherche pas à modifier mes objets C++, mais simplement leurs représentations lua. Le problème vient si je veux commencer à patcher les tableaux et objets LUA exportés par SWIG, afin que je puisse modifier l'API présentée du côté LUA.Lua + SWIG Monkey Patching
par exemple. le code lua suivant:
game.GetEnemies1 = game.GetEnemies2
ne fonctionne pas comme prévu. Le comportement après cette ligne est toujours cohérent avec l'original GetEnemies1 et non GetEnemies2.
Comment puis-je lutter contre ce problème?
Je réalise que le remplacement de la méthode dans lua en utilisant le patch singe n'affectera que le code lua, et que le monkeypatching du C++ lui-même n'est pas possible, mais c'est mon intention. Il y a certaines méthodes C++ qui ressemblent au patch de singe à la fin de lua pour les rendre plus agréables, ou même simplement les renommer –