effective C++条款四十四解读

本文探讨了模板编程中如何避免代码膨胀的问题,介绍了通过抽离无关模板参数的代码来减少冗余的方法,并讨论了特定情况下代码膨胀的表现形式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将于模板参数无关的代码抽离整个templates

使用模板我们必须有一个概念,利用模板我们不需要为多个类编写不同的处理代码,class template的成员函数只有在被使用时才被暗中具现化,所以只要这300个函数都被使用,就会获得300个函数代码。整个条款其实在说注意模板可能带来的代码膨胀(二进制代码带着重复的代码 数据)。

在编写函数的时候,我们会把两个函数相同的部分进行抽离形成一个单独的函数以避免带来重复以及函数膨胀。编写模板类也一样,如果其中有些部分和另一个部分类的一个部分相同,我们就抽离相同的部分,利用复合继承的方式来使用这些抽离的class.

在模板编程中,重复是相对隐晦的,因为只存在一份模板代码。

代码膨胀主要曾现出两个方面

1.template <class T,size_t n>这种代码会为每一个n生成一个实现码,注意将n先关的代码抽离。

2.某些平台上例如int和long有完全一样的二进制表达,却生成不同的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值