C++编程中,为什么要用模板特化?请高手简明扼要的讲解下。多谢了。

 我来答
cqdjyy01234
2013-02-27 · TA获得超过1147个赞
知道小有建树答主
回答量:267
采纳率:50%
帮助的人:306万
展开全部
因为通用的版本不符合要求,我列出几个暂时能想到的原因:

比如为了优化,例子就是std::vector<T>和std::vector<bool>(不清楚可以看源码,后面的是一个特化版本)。
还有可能是对不同的类型(或值)有不同的实现。
比如:
test<bool>可能在test<true>下有某个typedef,在test<false>中则没有。这不是故意构造出来给你看的,你可以看一下c++11或者boost库中,什么is_same, enable_if等等都有用到这种(或类似)的技巧。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
盼明月
2024-03-26 · 超过12用户采纳过TA的回答
知道答主
回答量:38
采纳率:100%
帮助的人:6.3万
展开全部
首先是新增了新的参数类型,然后因为你既不想修改已实现的模板函数逻辑,又想要支持新的功能新的参数类型,那就只能特化了。如果你修改已实现的模板函数逻辑去支持新的参数类型,新的功能,那就不用特化也行。所以特化并非解决问题唯一方式,也就是说不特化也行啊。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式