函数模板为什么没有偏特化?问题解答

来源:互联网 发布:sharp m2658n 网络扫描 编辑:程序博客网 时间:2024/05/16 06:11

推荐Herb Sutter的文章:Why Not Specialize Function Templates? 

 

通过该文,明白了:

1. 没有函数偏特化,仅仅是因为C++标准语言说不行(you can't partially specialize them -- pretty much just because the language says you can't),另外我觉得有了函数重载,函数偏特化也没什么用

 

2. 函数的全特化并不参与函数重载, 因为担心全特化版本会弄乱函数重载解析(不是很明白)

 

3. 函数重载的解析次序依次是:

  • void f(int i); 这类plain old normal function
  • 某个没有进行全特化的template function
  • 如果这个没有进行全特化的template function有全特化版本,并且类型也比较匹配,则选择这个全特化版本

原创粉丝点击