Tolua和模板方法

tolua and template methods

本文关键字:模板方法 Tolua      更新时间:2023-10-16

我需要绑定一个简单的模板方法到LUA,类似于

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