将于模板参数无关的代码抽离整个templates
使用模板我们必须有一个概念,利用模板我们不需要为多个类编写不同的处理代码,class template的成员函数只有在被使用时才被暗中具现化,所以只要这300个函数都被使用,就会获得300个函数代码。整个条款其实在说注意模板可能带来的代码膨胀(二进制代码带着重复的代码 数据)。
在编写函数的时候,我们会把两个函数相同的部分进行抽离形成一个单独的函数以避免带来重复以及函数膨胀。编写模板类也一样,如果其中有些部分和另一个部分类的一个部分相同,我们就抽离相同的部分,利用复合继承的方式来使用这些抽离的class.
在模板编程中,重复是相对隐晦的,因为只存在一份模板代码。
代码膨胀主要曾现出两个方面
1.template <class T,size_t n>这种代码会为每一个n生成一个实现码,注意将n先关的代码抽离。
2.某些平台上例如int和long有完全一样的二进制表达,却生成不同的代码。