C++编程中,为什么要用模板特化?请高手简明扼要的讲解下。多谢了。
2个回答
展开全部
因为通用的版本不符合要求,我列出几个暂时能想到的原因:
比如为了优化,例子就是std::vector<T>和std::vector<bool>(不清楚可以看源码,后面的是一个特化版本)。
还有可能是对不同的类型(或值)有不同的实现。
比如:
test<bool>可能在test<true>下有某个typedef,在test<false>中则没有。这不是故意构造出来给你看的,你可以看一下c++11或者boost库中,什么is_same, enable_if等等都有用到这种(或类似)的技巧。
比如为了优化,例子就是std::vector<T>和std::vector<bool>(不清楚可以看源码,后面的是一个特化版本)。
还有可能是对不同的类型(或值)有不同的实现。
比如:
test<bool>可能在test<true>下有某个typedef,在test<false>中则没有。这不是故意构造出来给你看的,你可以看一下c++11或者boost库中,什么is_same, enable_if等等都有用到这种(或类似)的技巧。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询