我正在查看node.js文档来制作模块。 http://nodejs.org/api/addons.html
我理解模板函数和模板类,例如
template <class T>
void MyTemplateFunction(T a)
{
a.doSomething();
}
...
MyObj mo;
MyTemplateFunction <MyObj>(mo);
这段代码看起来有点像模板,但我以前从来没有这样做过:
void init(Handle<Object> exports) {
// what is <Object>?
}
答案 0 :(得分:3)
据推测,Handle
是一个具有单一类型参数的类模板:
template <typename T> class Handle;
并且可能Object
是一种类型。
使用Handle
作为模板参数,实例化Object
类模板,以提供类;正如您的示例使用MyTemplateFunction
作为模板参数来实例化MyObj
函数模板一样,以提供函数。
答案 1 :(得分:2)
Handle<Object>
是template class的规范(与您在上面显示的template function相对)。有一个
template <class T>
class Handle {
...
};
代码中的某个位置或您包含的某个头文件中的某个位置。从本质上讲,Handle<Object>
是使用Handle
模板生成的类,在整个模板代码中将T
替换为Object
。
答案 2 :(得分:1)
这基本上是一回事:
exports
被声明为Handle<Object>
类型,Handle
是一个类模板,它接受一个(最有可能)类型的参数。它可能被宣布类似于以下内容:
template<typename T>
class Handle{...};