tolua和模板方法

我需要将一个简单的模板方法绑定到LUA中,例如:

void addComponent<T>(IComponent*);

我正在使用tolua来进行绑定,但它不支持类/方法模板(tolua ++支持类模板但不支持方法模板:))。是否有任何手动绑定此方法的方法?

提前谢谢。

点赞
用户734069
用户734069

C++模板实际上不存在于编译器之外。模板的实例存在,但模板本身纯粹是编译时构造。

不存在名为void addComponent<T>(IComponent*);的函数。确实有一个名为void addComponent<int>(IComponent*)void addComponent<float>(IComponent*)的函数,或者任何想要的特定类型。但是模板不是真正的函数。

您可以绑定模板的一个实例,这是一个具体的函数。这就像将任何自由函数绑定到toLua中一样工作。模板实例的名称将是addComponent<TypeName>,其中TypeName是要实例化的具体类型的名称。

换句话说,您无法绑定定义为任何类型的addComponent的概念。您可以绑定为特定类型定义的任何实际的addComponent

2011-12-21 19:51:58