我需要綁定一個簡單的模板方法LUA,像tolua和模板方法
void addComponent<T>(IComponent*);
我使用tolua做綁定,但它不支持類/方法模板(tolua ++支持類模板但不是方法:))。有沒有辦法手動綁定這個方法?
在此先感謝。
我需要綁定一個簡單的模板方法LUA,像tolua和模板方法
void addComponent<T>(IComponent*);
我使用tolua做綁定,但它不支持類/方法模板(tolua ++支持類模板但不是方法:))。有沒有辦法手動綁定這個方法?
在此先感謝。
C++模板實際上並不存在於編譯器之外。 實例化存在模板,但模板本身純粹是編譯時構造。
沒有名爲void addComponent<T>(IComponent*);
有功能調用的函數,void addComponent<int>(IComponent*)
或void addComponent<float>(IComponent*)
或任何你想要的特定類型。但模板不是真正的功能。
您可以綁定模板的實例化,這是一個具體功能。這就像綁定toLua中的任何自由函數一樣。實例化的名稱將爲addComponent<TypeName>
,其中TypeName
是要實例化它的具體類型的名稱。
換句話說,您不能綁定爲任何類型定義的addComponent
的概念。您可以綁定爲特定類型定義的任何實際addComponent
。
好點。我非常專注於那些忘記了這個基本概念的綁定。另一方面,luabind等如何檢測模板方法的所有模板方法實例?不明白。我想這是它解析標題,但不知道。 – Notbad 2011-12-21 22:58:46
@Notbad:Luabind也不允許;你必須使用具體的功能和類型,而不是功能。 Luabind允許你綁定一個'vector
你能提供你想如何使用這種方法的例子嗎? – kikito 2011-12-21 16:25:26
lua這樣的東西:'go = GameObject:new(); animComponent = AnimComponent:新的();去:addComponent(animComponent);'對不起,試圖使用迷你Markdown格式格式化評論,但不知道爲什麼它不這樣做。希望它或多或少地清楚。 – Notbad 2011-12-21 17:22:11
對於下一個,知道你可以編輯你的原始問題,並添加任何相關的代碼詢問;) – kikito 2011-12-22 08:24:51