-
[lang_en]Bug in the Lua’s Luna Wrapper[/lang_en][lang_ru]Ошибка в обертке Luna для Lua[/lang_ru]
Дата: Ноябрь 7th, 2009 Neill Комментарии (2)[lang_ru]Luna обертка для интеграции с++ классов под Луа вполне удобна и компактна.
http://lua-users.org/wiki/LunaFour
Но вот недавно решил попробовать её четвертую версию, где реализованы свойства и операции метатаблицы (присвоение, сложение и прочее). Так вот свойство в моем классе значение брало, но устанавливать его никак не хотело. Оказалось, что в классе Luna переопределяется метод __setindex в качестве назначения величины.
Посмотрел документацию по мета методам http://lua-users.org/wiki/MetamethodsTutorial
и нашел там чтобы переопределять на самом деле нужно метод __newindex
Внес соответствующие правки в код Luna и все заработало![/lang_ru]
[lang_en]Luna wrapper for integrating C + + classes under Lua is quite handy and compact.
http://lua-users.org/wiki/LunaFour
But recently I decided to try its fourth version, where implemented properties and operations (assignment, add, etc.). So the property was getting the value from my class, but property didn’t want to set a value. It turned out that in the class Luna overrides __setindex method as the destination value.
I looked at the documentation on meta methods http://lua-users.org/wiki/MetamethodsTutorial
and found that I nee to override actually __newindex method
Please make the appropriate changes to the code Luna and it will work![/lang_en]
Программирование Lua, Luna, Script, Tips2 Responses to “[lang_en]Bug in the Lua’s Luna Wrapper[/lang_en][lang_ru]Ошибка в обертке Luna для Lua[/lang_ru]”
-
А для чего ты используешь Luna?
Мы вот используем LuaPlus )) -
в Луа я не преследую целей повторить ООП, поэтому пишу без каких-либо оберток, чистый Луа. В этом преследую еще и цель минимизации памяти и размера дистрибутива, что очень важно для моей задачи. А Луна в данном случае это больше парочка демо функций как пользоваться Луа, чем какая-то обертка.
Добавить комментарий
-



Свежие комментарии