C++新特性——外部模板

1、What

        C++11标准引入的一种机制,允许在头文件中声明模板,但仅在一个单独的源文件中显式实例化这些模板。这一机制使得编译器只需要在源文件中实例化模板一次,其它源文件引用已经实例化的模板,从而减少编译时间和生成的二进制文件大小。

2、Why

2.1 优化编译时间

模板实例化导致编译器在每次包含模板头文件的时候都进行实例化,增加了编译时间。通过外部模板,可以限制模板实例化的次数,从而减少编译时间。

2.2 解决二进制膨胀

在多个源文件中包含同一个模板头文件,导致生成的二进制文件中包含多次相同的模板实例化,从而增加二进制文件的大小。外部模板可以确保模板实例在二进制文件中只出现一次。

2.3 代码组织

将模板实例化集中在一个源文件中,可以使代码更加整洁和组织化。

3、When

3.1 大型项目

在大型项目中,模板的使用通常非常广泛,使用外部模板可以显著减少编译时间和二进制文件大小。

3.2 模板库

开发模板库时,使用外部模板可以提高库的可用性和效率。

3.3 性能敏感

对于性能敏感的应用,减少编译时间和二进制文件大小是非常重要的,此时可以考虑使用外部模板。

4、How

4.1 在头文件中声明模板

在头文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gaopeng@step by step

你我共同进步

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值