Я работаю над проектом C ++ с большим количеством классов (150+), каждый из которых имеет от 10 до 300 полей или около того. Я действительно хотел бы иметь возможность предоставить интерфейс сценариев для целей тестирования, чтобы я мог кодировать обратные вызовы, которые не требуют повторной компиляции. Я хотел бы сделать это на Lua, так как я более знаком с его API C, чем с Python, но если это избавит от головной боли, я был бы рад сделать это на Python.
Я хорошо понимаю, как вызывать функции Lua из моего C ++ и наоборот, и я знаю, как передавать базовые типы данных туда и обратно. У меня есть вопрос, как разделить пользовательские типы данных между ними с помощью SWIG.
Например, в какой-то момент в моем C ++ я мог бы захотеть оценить пару частей данных-членов в объекте, который имеет 250 полей. Я хотел бы иметь возможность передать этот объект Lua, который затем (надеюсь?) Может использовать сгенерированные оболочки SWIG для манипулирования этим объектом, отображения определенных полей, а затем передать (потенциально измененный) объект обратно в C ++ для дальнейшего использования. .
Я также хотел бы иметь возможность создавать экземпляр объекта в Lua, используя обертки, и передавать его в C ++ для использования в качестве нормальной версии C ++ объекта.
Возможно ли это? Может ли кто-нибудь указать мне на учебник или явный пример?
Спасибо за любую помощь, которую вы можете предложить!