涉及另一个typename的C ++模板细化?

时间:2011-03-21 19:09:53

标签: c++ templates

不使用Boost,如何编写如下函数:

template<typename T>
void myFunc(T t)
{
   ...
}

template<>
void myFunc(someclass<T> t)
{
    myFunc(t.get());
}

更新:我可能已经对此进行了分析。当我想要原版

时,我很困惑
template<typename T>
void myFunc(T t)
{
   ...
}

使用矢量。我想我很困惑,因为在模板函数的特化中你省略了typename参数,我认为我还需要T。

似乎其中一个答案可能已经奏效。

1 个答案:

答案 0 :(得分:2)

不确定为何将Boost与此相关联。无论如何:

这不起作用,因为此处不存在T

template<>
void myFunc(someclass<T> t);

你的意思是:

template < typename T >
void myFunc(someclass<T> t);