2017-04-27 136 views
0

我在cocos2dx中使用lua。 有一個模板功能,如:模板函數綁定lua

class ClassA 
{ 
public: 
    template<class T1, class T2> 
    static ClassA* createClassA(T1 t1, T2 t2); 
} 

我怎麼能結合這個功能LUA?

在此先感謝,

回答

1

您不能。你將不得不綁定單個靜態函數int createClassA(lua_State* L);,它將檢查實際的Lua參數類型,並調用特定的模板方法。意味着必須在本地代碼中進行某種切換,並且所有可能的情況都應該在本地主機中實例化。

+0

你的意思是沒有辦法將模板實現從cpp導出到lua? –

+0

Lua沒有函數簽名的概念。這只是一個單一的價值。所以你需要爲不同的模板實例分別使用Lua函數,或者你必須通過選擇Lua參數來選擇確切的實例。無論哪種方式,這是你的責任(或你的c + +綁定庫/框架),Lua在這裏幫不了忙。 – Vlad

+0

謝謝,「或者你必須通過檢查Lua參數來選擇確切的實例化」如果lua參數是一個用戶類型,是否有... –