SWIG を使用して一連のクラスを lua にバインドしました。C++ 自体がモンキー パッチをサポートしていないことはわかっています。また、C++ オブジェクトを変更しようとしているのではなく、単にそれらの lua 表現を変更しようとしているだけです。問題は、lua 側で提示された API を変更できるように、Lua テーブルと SWIG によってエクスポートされたオブジェクトにモンキー パッチを適用し始めたい場合に発生します。
たとえば、次の lua コード:
game.GetEnemies1 = game.GetEnemies2
期待どおりに動作しません。その行の後の動作は、GetEnemies2 ではなく、元の GetEnemies1 と一貫性があります。
どうすればこの問題に対処できますか?