比如,你定义了一个函数模板
template<typename T>
void func(const T& t)
{
dosomething(t);
}
但是,当T是整数的时候你不想dosomething,而是想killsomeone,那就需要具体化了。
具体化有2种形式,一种是显式具体化
即定义一个特殊类型的实现
template<>
void func<int>(const int& t)
{
killsomeone(t);
}
这样,除了int型以外,其他类型仍然按照dosomething来运行
另一种方式是写一个函数来屏蔽模板
比如,定义如下
void func(const int& t)
{
killsomeone(t);
}
这样,在编译链接时这个函数就屏蔽掉了模板,自动采用定义的函数。
函数模板的具体化有什么意义。
最新推荐文章于 2024-06-18 03:24:33 发布