#include <iostream>
template<class T>
struct Widget{
void Func() {
std::cout<<"generic func"<<std::endl;
}
};
// 成员函数全特化可以
template<>
void Widget<char>::Func(){
std::cout<<"spectial"<<std::endl;
}
void Test(){
Widget<int> w;
w.Func();
Widget<char> c;
c.Func();
}
template<class T, class U>
struct Target{
void Func(){
std::cout<<"generic func"<<std::endl;
}
};
// 成员函数偏特化失败,不支持
template<class T>
void Target<T, int>::Func(){
std::cout<<"spectial"<<std::endl;
}
/// 函数模板偏特化demo, 一个模板参数可以(可以全特化),多个模板参数失败(偏特化不支持)
template <typename A>
void f(A a) {
std::cout << "Normal version." << std::endl;
}
template <>
void f<int>(int a) {
std::cout << "Partial version." << std::endl;
}
int main() {
Test();
return 0;
}
08-08
386
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交