LuatinkerELua-C++ 綁定庫(kù)
Lua-C++ 綁定庫(kù),"lua_tinker"的 C++14 和 Lua 5.3 擴(kuò)展版本。
使用大量 C++14 特性 Variadic Template 和 index_sequence, SFINAE enable_if 和 type_traits, tuple, function, forward_ref, decltype(auto)。
通過(guò) vc2015, gcc5.0, clang3.6 編譯。
新特性一覽:
-
導(dǎo)入lua的函數(shù),現(xiàn)在支持任意多的參數(shù)
-
支持的read/push的元素類型增加std::string,std::function,lua_function_ref,stl容器,std::shared_ptr對(duì)象
-
支持最多16個(gè)參數(shù)的非精確匹配的函數(shù)重載(c++類型downcast到lua類型后生成簽名), 支持普通函數(shù)、類成員函數(shù)、構(gòu)造函數(shù)
-
支持函數(shù)默認(rèn)參數(shù)及帶默認(rèn)參數(shù)的重載函數(shù)的匹配
-
移除int64相關(guān)函數(shù),使用lua5.3的luaInterager來(lái)替代
-
支持調(diào)用lua函數(shù)時(shí)返回多個(gè)返回值用tuple包裹
-
支持通過(guò)宏定義打開(kāi)類型一致性檢查和常量類成員函數(shù)檢查
-
支持通過(guò)宏定義允許已注冊(cè)的shared_ptr對(duì)象調(diào)用類成員函數(shù)
-
支持類靜態(tài)函數(shù)注冊(cè)
-
支持類靜態(tài)變量注冊(cè)
-
支持property注冊(cè)
-
支持繼承多個(gè)父類,查找時(shí)根據(jù)順序依次查找,深度優(yōu)先
-
支持注冊(cè)namespace及內(nèi)的函數(shù)/變量/枚舉/類
-
支持注冊(cè)嵌套的類
-
支持在lua中擴(kuò)展已經(jīng)注冊(cè)的類
-
支持在lua中注冊(cè)一個(gè)新類繼承已經(jīng)注冊(cè)的類
