我有一个函数,目前需要两个模板参数。预计一个是智能指针,另一个预计是对象类型。例如,SmartPtr<MyObject>
作为第一个模板参数,而MyObject
作为第二个模板参数。从智能指针确定类型
template <typename T, typename TObject>
我想知道我是否可以从第一个参数SmartPtr<MyObject>
或无法自动确定第二个参数,MyObject
,让我的模板函数是这样写的:
template <typename T>
而且类型TObject
中的原始模板函数是从T
自动确定的,这是预期的智能指针。
按照要求,这里是函数声明及其使用:
template <typename T, typename TObject>
T* CreateOrModifyDoc(T* doc, MyHashTable& table)
{
T* ptr = NULL;
if (!table.FindElement(doc->id, ptr))
{
table.AddElement(doc->id, new TObject());
table.FindElement(doc->id, ptr);
}
return ptr;
}
发布一些代码。 – 2011-05-10 20:48:38
你可以将这个函数粘贴到你的问题中吗? – mkb 2011-05-10 20:50:53
我们可以猜测,但为了完全回答您的问题,您需要向我们展示函数声明以及如何调用它。 – GManNickG 2011-05-10 20:51:44