如何对两个参数使用部分特化
我可以发誓语法是正确的。我尝试了一下,将 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);
}
I could swear the syntax is correct. I played around and changed class
into typename
. Still no go.
How do i write this so the 2nd function template kicks in?
#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);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
函数模板没有部分特化。只需使用重载即可:
There are no partial specializations of function templates. Just use overloading instead: