本篇中, 我们将以lura库为例(笔者之前项目使用的Lua的 bridge实现), 介绍如何以C++反射作为基础设施, 以更简洁的方式来实现一版lua的bridge....C++类到Lua中使用, 基本都要完成如下图所示的几项功能:
1.1 函数的处理
不管是 "member functions" 或者是 "static functions"的处理, 在bridge...c++函数向lua注册的核心目的只有一个: 将需要在lua中调用的c++函数, 转换为 统一类型的lua c function....在使用过程中我们体验比较好的那部分, 但它其实依然有很多跨语言库的通病: - 对像唯一性 - 类型丢失 - 对象的生命周期管理 这些都会存在一些坑点, 外部使用者比较容易出现一些特定情况下出现诡异Bug...集中C++调用Lua的代码, 有统一的地方发起相关的使用, 也方便问题的定位以及代码本身的迭代.