我如何在两个参数上使用部分特化

时间:2012-02-14 18:40:35

标签: c++ templates template-specialization

我发誓语法是正确的。我玩了一下并将class更改为typename。仍然没有。

我如何写这个以便第二个功能模板开始?

#include <iostream>

template<typename T, typename TT> void fn(T t, TT tt) { std::cout<<"general"<<std::endl; }
template<> void fn<T, bool>(T t, bool tt) { std::cout<<"bool"<<std::endl; }
int main(){
    fn("", "");
    fn("", true);
}

1 个答案:

答案 0 :(得分:7)

功能模板没有部分专业化。只需使用重载:

template<typename T> void fn(T t, bool tt) { std::cout<<"bool"<<std::endl; }