0
template <typename T>
void foo(T t)
{
   ... // do stuff with type T
}

template <typename T>
class class_template
{
    // class body
};

template<>                       // failed attempt at full specialization
void foo(class_template<T> t)    // which doesn't work of course
{
    //full specialization for all classes of class_template
} 

在上面的代码中,我如何使用类模板明确地专门化函数 foo?

4

1 回答 1

1

在上面的代码中,我如何使用类模板明确地专门化函数 foo?

你不能。这就是部分专业化的重点。但它们不适用于功能。

你有两个解决方案:

  • 重载函数。这通常有效。
  • 将工作参考一个可以部分专业化的类模板。也就是说,在您的函数内部,调用类模板中的(静态)函数,并专门.
于 2012-05-17T13:56:31.830 回答