您好我正在使用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;
}
答案 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;
}