Привязки LuaBind для стандартной библиотеки? - PullRequest
1 голос
/ 20 июня 2011

У меня начались небольшие проблемы с некоторыми функциями, которые я связал с lua, используя luabind. Эти функции возвращают или принимают объекты std: string в качестве аргументов, и данные, которые в конечном итоге получает c ++, являются мусором, очевидно, потому что lua не распознает тип данных. Я в порядке с ручным связыванием std :: classes по мере их необходимости, но мне интересно, если это уже было сделано для стандартной библиотеки c где-либо. Я не могу найти какую-либо библиотеку привязок; Кто-нибудь знает, существует ли такой проект?

1 Ответ

3 голосов
/ 20 июня 2011

Luabind уже имеет автоматические преобразования между строками Lua и std :: string (а также char *).Таким образом, вы должны иметь возможность использовать их в качестве параметров и / или возвращаемых значений просто отлично.Если вы не можете этого сделать, значит, что-то идет не так, как на вашей стороне, так и на стороне Luabind.

Luabind также имеет адаптер для преобразования возвращаемого типа, соответствующего STLконтейнер в итераторную функцию Lua.Таким образом, вы можете использовать его в цикле for, подобном следующему:

for object in CppFuncThatReturnsStdVector() do
    --Do something with "object"
end

Кроме них, я не знаю каких-либо конкретных попыток создать библиотеку Luabind, которая напрямую предоставляет стандартную библиотеку C ++ Lua.Это, вероятно, было бы не очень хорошей идеей;Таблицы Lua покрывают большинство потребностей, которые могут возникнуть у контейнеров в стиле STL.И большинство других вещей - это то, что Lua может обрабатывать с помощью собственной стандартной библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...