对于同样的函数,如果要区别于整数类型提供重载,将各种类型的参数的重载函数都重载一遍不太现实,可以采用调用type traits的方法,实现重载
例如:
template
void foo_iml(T val,true_type);
template
void foo_iml(T val,false_type);
template
void foo(T val)
{
foo_impl(val,std::is_integral());
}
通过这种方式,所有非整形的情况都会匹配第二模板。