Effective C++ 条款44:将与参数无关的代码抽离 template

条款44:将与参数无关的代码抽离 template

模板代码可能因模板参数的变化而导致代码膨胀,从而影响程序的可维护性和运行效率。通过将与模板参数无关的代码抽离,可以减少不必要的膨胀。


避免代码膨胀的策略

  1. 对非类型模板参数
    将非类型模板参数替换为函数参数或类成员变量。

  2. 对类型模板参数
    通过共享实现来减少因相同二进制表示的具现类型导致的代码重复。


示例 1:抽离非类型模板参数

// 原始实现:使用非类型模板参数
template <int Threshold>
class Widget {
    
public:
    void process(int value) {
    
        if (value > Threshold) {
    
            // 处理逻辑
        }
    }
};

// 改进实现:使用类成员变量替换模板参数
class Widget {
    
private:
    int threshold;
public:
    explicit Widget(int t) : threshold(t) {
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值