fflua更新-增加对引用的支持

简介:

fflua 发布了有段时间了,很多网友都用了,并且提供了一些很好的反馈。其中一个就是c++接口注册到lua中时,对引用的支持。这样使用起来更加方便。

原有方式:

fflua 中注册c++的类用如下方式:

class base_t
{
public:
    base_t():v(789){}
    void dump()
    {
        printf("in %s a:%d\n", __FUNCTION__, v);
    }
    int v;
};
//! 注册基类函数, ctor() 为构造函数的类型
    fflua_register_t<base_t, ctor()>(ls, "base_t")  //! 注册构造函数
                    .def(&base_t::dump, "dump")     //! 注册基类的函数
                    .def(&base_t::v, "v");          //! 注册基类的属性

当c++类注册成功,后lua代码中可以操作类对象的指针,并且可以作为参数传递给c++的接口:

void dumy_base(base_t* p)
{
    printf("in %s begin ------------\n", __FUNCTION__);
}
fflua_register_t<>(ls).def(&dumy, "dumy");  //! 注册静态函数

有网友跟我反映,原来的接口很多都是使用引用作为参数,为了接收lua传过来的参数,还得需要重新写一个函数,比较麻烦,于是fflua增加了对引用的支持:

void dumy_base(base_t& p)
{
    printf("in %s begin ------------\n", __FUNCTION__);
}
fflua_register_t<>(ls).def(&dumy, "dumy"); //! 注册静态函数

总结:

最新代码:

https://github.com/fanchy/fflua

时间: 2024-07-31 16:41:49

fflua更新-增加对引用的支持的相关文章

HTTP实现长连接(TTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持Connection: keep-alive)

HTTP实现长连接 HTTP是无状态的 也就是说,浏览器和服务器每进行一次HTTP操作,就建立一次连接,但任务结束就中断连接.如果客户端浏览器访问的某个HTML或其他类型的Web页中包含有其他的Web资源,如JavaScript文件.图像文件.CSS文件等:当浏览器每遇到这样一个Web资源,就会建立一个HTTP会话 HTTP1.1和HTTP1.0相比较而言,最大的区别就是增加了持久连接支持(貌似最新的 http1.0 可以显示的指定 keep-alive),但还是无状态的,或者说是不可以信任的.

在ASP.NET Core Web API中为RESTful服务增加对HAL的支持

HAL(Hypertext Application Language,超文本应用语言)是一种RESTful API的数据格式风格,为RESTful API的设计提供了接口规范,同时也降低了客户端与服务端接口的耦合度.很多当今流行的RESTful API开发框架,包括Spring REST,也都默认支持HAL规范,当RESTful API被调用后,服务端就会返回ContentType为application/hal+json的JSON内容,例如: { "_links": { "

2014.7.26 为cocos2d-x3.2版本增加protobuffer2.5.0支持

为cocos2d-x3.2版本增加protobuffer2.5.0支持(win32&android) 因为不想排版 所以这里只有文字 可以下载word版观看:点击下载 作用:添加protobuffer支持后,可以利用protobuffer特性来序列化和反序列化二进制数据流. 软件准备:cocos2d-x3.2, protobuffer2.5.0,protoc-2.5.0-win32, vs2012, anroid相关环境(SDK, NDK , CYGWIN等) Setp1:新建cocos2d-x

php增加对mysqli的支持

php增加对mysqli的支持 我在fedora下使用yum安装的php和mysql,但是发现php不支持myslqi,只能编译一个mysqli的扩展给php用了. 方法如下: 1.下载php 2.进入扩展目录, cd /php-5.3.10/ext/mysqli 3.phpize 生成configure 4.如果在编译php对mysqli的支持的时候出现了如下错误: checking whether to enable embedded MySQLi support… nochecking f

json_encode增加options参数后支持中文

---------------------------------------------------------------------------------------------------- header('content-type:text/html;charset=utf-8'); $a = '中文'; echo json_encode($a);//5.3版本以前,无参数情况输出 "\u4e2d\u6587" echo json_encode($a, JSON_UNESC

MyEclipse6.5增加对Tomcat7的支持

MyEclipse6.5增加对Tomcat7的支持 最近在研究Servlet3.0,它是JavaEE6.0规范中的一部分 而Servlet3.0对服务器是有要求的,比如Tomcat7+(而Tomcat7.0要求JDK6+,即编译级别应该是6+) 但我一直使用的MyEclipse6.5不支持Tomcat7,可也不能为了这个就去装一个MyEclipse8.0啊 好吧,还是像当初我用TongWeb5.0的方式一样,自己DIY一下吧 1)下载Tomcat7 2)由于我已经配置了tomcat6,为了同时拥

android版chrome更新增加了中文支持

%E4%B8%BA%E4%BB%80%E4%B9%88%E5%8A%A8%E6%80%81%E7%B1%BB%E5%9E%8B%E8%AF%AD%E8%A8%80%E7%9B%B8%E5%AF%B9%E6%AF%94%E8%BE%83%E6%85%A2 http://www.zcool.com.cn/collection/ZMTcxNzU5Mjg http://www.zcool.com.cn/collection/ZMTcyMTI1MTY=.html http://www.zcool.com.

在VS2015中增加JQuery引用及智能提示

  打开VS2015,从"工具"菜单选择NuGet选项,搜索Jquery,并点击安装.   可以看到解决方案的scripts增加了对应文件的引用   在HTML文件中可以直接引用jquery脚本库了.引用代码如下:<script type="text/javascript" src="Scripts/jquery-3.1.1.min.js">            </script> 但是奇怪的是,在引用脚本库函数时没有智

hive增加Update、Delete支持

一.配置hive-site.xml二.建表三.操作四.总结 一.配置hive-site.xml CDH版本先进入Hive配置页 选择高级,找到hive-site.xml 的 Hive 客户端高级配置代码段配置项 点击+号,增加如下配置项 hive.support.concurrency = true hive.enforce.bucketing = true hive.exec.dynamic.partition.mode = nonstrict hive.txn.manager = org.a