专业模板 - 目的

时间:2013-04-19 16:39:48

标签: c++

我知道c ++中有哪些模板,但今天我看到了一些奇怪的代码:

template <> void swap(foo &a, foo &b)
{
   a.name = b.name;
   a.id = 1;
   // blah blah blah
}

我做了一些研究,发现它被称为专用模板,或类似的东西。

如果在上面的代码中我删除了template <>部分,我会得到完全相同的结果。还有通用模板功能中没有通用类型...

我的问题是 - 使用它们的目的是什么?

1 个答案:

答案 0 :(得分:3)

从该功能中删除template <>会导致这些更改:

  1. 它不是模板专业化
  2. 不会从代码swap<foo>( a, b )
  3. 调用
  4. swap( a, b )和/或a可兑换的类型时,可以成为b的最佳匹配{1}}。