Если вы пытаетесь найти информацию об отражении переменной (список методов и т. Д.), Вы можете использовать функции class_info()
и class_names()
.
Примечание: Насколько я могу судить, эти функции не документированы, но, по крайней мере, они существуют в Luabind 0.9.Используйте на свой страх и риск.
Чтобы использовать эти функции Luabind в вашем коде Lua, вам необходимо сначала связать их.Пример:
#include "luabind/class_info.hpp"
/* ... */
luabind::open(L);
luabind::bind_class_info(L);
Затем из вашего кода Lua вы можете проанализировать переменную:
-- Variable "game" is an instance of class "Game"
c = class_info(game)
print(c.name)
-- Prints:
-- Game
for k, v in pairs(c.methods) do print(k, v) end
-- Prints:
-- get_config function: 01765AE0
-- on_init function: 01765E90
-- ...
for k, v in pairs(c.attributes) do print(k, v) end
-- ...
Вы также можете получить список всех классов, о которых Luabind знает:
for i, v in ipairs(class_names()) do print(v) end
-- Prints:
-- class_info_data
-- Config
-- Game
-- ...