如何在两个参数上使用偏专业化

How do i use partial specialization on two parameters

本文关键字:参数 专业化 两个      更新时间:2023-10-16

我可以保证语法是正确的。我四处玩耍,把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);
}

函数模板没有部分特殊化。只需使用重载:

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