如何在 C++ 中创建 Lua 表,并将其传递给 Lua 函数?
在 C++ 中,我有一个 map
,其中包含未知数量的条目。 如何将其传递给 Lua 函数,以便 Lua 函数可以将数据用作表格?
In C++, I have a map<string, string>
, containing an unknown number of entries. How can I pass this to a Lua function, so that the Lua function can use the data as a table?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果你想要一个真正的lua表:
用你的地图的正确类型替换..
if you want a real lua table:
with the right types for your map substituted in..
几个选项...
将映射复制到新的 Lua 表中,并传递 Lua 表。
创建一个代理表,通过元表的
来指导读写__index
和__newindex
元方法当然,(1) 的缺点是所有复制。
(2) 的缺点是
pairs()
无法在代理表上工作。有关 Lua 通用
pairs
修复的讨论是 wiki 和此邮件列表主题。 Lua 5.2 预计会出现通用对
A couple options...
Copy the map into a new Lua table, and pass the Lua table.
Create a proxy table that directs reads and writes through a metatable's
__index
and__newindex
metamethodsThe drawback to (1) is all the copying, of course.
The drawback to (2) is that
pairs()
won't work on the proxy tableA discussion of fixes to Lua for generalized
pairs
is in the wiki and this mailing list thread. Generalizedpairs
is expected for Lua 5.2