C ++模板专业化

时间:2016-05-05 22:20:30

标签: c++

您好我正在使用C ++实现模板专业化,如果输入(和输出)类型是float和double,我希望函数foo做某事,但是希望foo对int采取不同的行为。

我似乎做错了什么。你能给我一些指示吗?非常感谢!

template <typename typeA, typename typeB>
typeA foo(const typeB *pt) {
  // do something;
} 

template float foo<float, float>(const float *pt);
template double foo<double, double>(const double *pt);

template<>
int foo(const int *pt) {
  // do something different for int;
}

1 个答案:

答案 0 :(得分:0)

所以我错过的是<int, int>。完整代码:

template <typename typeA, typename typeB>
typeA foo(const typeB *pt) {
  // do something;
} 

template float foo<float, float>(const float *pt);
template double foo<double, double>(const double *pt);

template<>
int foo<int, int>(const int *pt) {
  // do something different for int;
}