LuaTinker:清晰简单的lua的封装.及其中的陷阱

本文探讨了Lua的封装库LuaTinker的使用经验,包括如何使用C++数据结构、指针以及引用。文章揭示了在使用LuaTinker时遇到的模板参数推导陷阱,特别是关于引用类型转换的问题,并分享了解决方案。此外,还提到在使用lua_tinker::table时发现的异常情况,分析了原因并提出修正方法。
摘要由CSDN通过智能技术生成

Lua有很多封装.其中的利弊已经有不少介绍.只是提一下luaplus.本来期望值蛮高的.但后来发现文档质量不高.sample编译不过去.不过调试功能做的比较强..
最后选择了LuaTinker.一个韩国人写的.2个文件.5个sample.简单清晰.赞一个.~
 
首先试验了几个基本功能.都没什么问题.

当时比较疑惑的几个问题是.在lua中可以使用指针么?可以使用c++中的数据结构么?.

lua中的函数可以以指针为参数么?

结论是可以的.不过跟强大的luabind比起来.luatinker没有对导出枚举提供支持.

但其他方面功能并不差.

比如c++中有类A

 

  1. class A
  2. {
  3. public:
  4.        A()    {}
  5.        void test();
  6. private
  7.        A( const A& )    {}  
  8. }

 

 

lua中定义 

但如果以对象引用为参数的时候发现对象被复制了

 

.. 

  1. A& ra = a; 
  2. lua_tinker::call<void>(L, "lua_func", ra); 

 

这里的 ra没有像引用一样工作 .而是以值传递的方式进入的函数


 
这就奇怪了..于是开始读代码

 
代码就不贴了.不过很显然的是.LuaTinker里有写一堆处理引用的偏特化.也就是表明应该是考虑过引用的
.

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值