LuatinkerE

Lua-C++ 绑定库
授权协议 MIT
开发语言 C/C++ Lua
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 皮景龙
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Lua-C++ 绑定库,"lua_tinker"的 C++14 和 Lua 5.3 扩展版本。

使用大量 C++14 特性 Variadic Template 和 index_sequence, SFINAE enable_if 和 type_traits, tuple, function, forward_ref, decltype(auto)。

通过 vc2015, gcc5.0, clang3.6 编译。

新特性一览:

  • 导入lua的函数,现在支持任意多的参数

  • 支持的read/push的元素类型增加std::string,std::function,lua_function_ref,stl容器,std::shared_ptr对象

  • 支持最多16个参数的非精确匹配的函数重载(c++类型downcast到lua类型后生成签名), 支持普通函数、类成员函数、构造函数

  • 支持函数默认参数及带默认参数的重载函数的匹配

  • 移除int64相关函数,使用lua5.3的luaInterager来替代

  • 支持调用lua函数时返回多个返回值用tuple包裹

  • 支持通过宏定义打开类型一致性检查和常量类成员函数检查

  • 支持通过宏定义允许已注册的shared_ptr对象调用类成员函数

  • 支持类静态函数注册

  • 支持类静态变量注册

  • 支持property注册

  • 支持继承多个父类,查找时根据顺序依次查找,深度优先

  • 支持注册namespace及内的函数/变量/枚举/类

  • 支持注册嵌套的类

  • 支持在lua中扩展已经注册的类

  • 支持在lua中注册一个新类继承已经注册的类

 相关资料
  • 动态绑定确定在运行时而不是在编译时调用的方法。 动态绑定也称为后期绑定。 在Objective-C中,所有方法都在运行时动态解析。执行的确切代码由方法名称(选择器)和接收对象确定。 动态绑定可实现多态性。例如,考虑一组对象,包括和。 每个对象都有自己的方法实现。 在下面的代码片段中,表达式执行的实际代码是在运行时确定的。 运行时系统使用方法运行的选择器来识别的任何类中的适当方法。 下面来看一下解释

  • 我有一个简单的测试,我试图将一个弱ptr参数绑定到一个接受弱ptr的全局函数,并在支持指针仍然有效的情况下调用一个方法。 当我用弱指针创建lambda时,这似乎是有效的。如果我用weak_ptr直接调用全局方法,它也可以工作。但是,如果我事先将全局函数绑定到weak_ptr,它似乎不起作用。下面的淡化代码说明了这个问题。 我一定错过了一些简单的东西。有什么线索吗? 结果输出: 期望第一个weakP

  • 本文向大家介绍C#实现treeview绑定的方法,包括了C#实现treeview绑定的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#实现treeview绑定的方法。分享给大家供大家参考。具体实现方法如下: 希望本文所述对大家的C#程序设计有所帮助。

  • 本文向大家介绍C# TextBox数据绑定的方法,包括了C# TextBox数据绑定的方法的使用技巧和注意事项,需要的朋友参考一下 经常写用一个TextBox显示某个对象,然后编辑之后再保存的程序。以前都是在TextBox_TextChanged事件中修改对象的值,或者保存的时候再读取TextBox.Text属性保存对象的值。这样比较麻烦,而且经常容易出错。后来了解了C#的数据绑定,发现能够很好的

  • 本文向大家介绍C# Datagridview绑定List方法代码,包括了C# Datagridview绑定List方法代码的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了c# DatagridView绑定List的方法,分享给大家供大家参考。具体方法如下: 主要代码如下:  希望本文所述对大家的C#程序设计有所帮助。

  • 我有一个组合框,它在下拉列表中显示listview,我遵循MVVM模式,我也在我的Viewmodel中设置了公共属性,当我将其分配给标签时,它工作正常,但对于组合框,它似乎不依赖于我的绑定。我尝试了很多方法,但都找不到问题所在。 XAML: 当我使用公共属性并访问它的元素时,这对我来说很好,我还尝试设置text={绑定选择MU.MU_Identifier}和选择值,但它不起作用。

  • 最后重要的一点是,我要创建的这些节点本身可能有几个属性。因此,为了保持上面的例子,它可能是每个作者的出生日期和地点列出。 任何建议都很感激。

  • if绑定 if绑定应用在页面元素中,并通过表达式判断是否为元素添加子元素的绑定。if绑定在功能上非常像visible绑定,但在实现上却有很大的不同。visible绑定是为元素添加css样式来控制元素是否显示,if绑定是控制元素的字元素,如果表达式为true,则为元素添加子元素,否则清空子元素。 示例代码: //.W片段 <label> <input type="checkbox" bind-c