Tolua和模板方法
tolua and template methods
我需要绑定一个简单的模板方法到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
。
相关文章:
- 将成员函数指针作为参数传递给模板方法
- 模板方法访问正向声明的类仅在没有此指针的情况下无法编译
- C++11:模板方法的模板函数调用无法编译?
- 如何从ECS中的模板方法获取组件?
- 使用 SFINAE 设计模板方法
- 一个模板方法,用于同时接受常量和非常量参数
- C++模板方法中的循环依赖关系
- 在 C++ 中使用模板方法重写类方法
- 类中的模板方法
- 基于枚举参数调用专用模板方法
- 模板中的模板方法 - 实例声明和类方法声明签名不同
- 可变参数模板方法
- 使用模板方法为标头提供空 cpp 时出现问题
- SFINAE 方法在 clang 中完全禁用基类的模板方法
- 将函数和成员函数传递给模板方法
- 从非模板类调用专用模板方法
- MSVC使用constexpr-if从可变模板方法中的基本模板参数中吞下const
- 依赖于特定类类型的C++模板方法
- 有没有办法仅在两个模板参数相同时才覆盖匹配的模板方法?
- Tolua和模板方法