item44:将与参数无关的代码抽离template

时间:2023-03-08 16:51:13
item44:将与参数无关的代码抽离template

编写non-template代码中,重复十分明显:可以很直观的看到代码的重复,然后将它们写成一个新的class或者函数,然后供调用。

编写template代码中,重复是隐晦的:只存在一份template源代码,所以必须训练自己去感受template具现化多次时可能发生的重复。

 

Template生成多个classes和多个函数,所以任何template代码都不该与某个造成膨胀的template参数产生相依关系;

因非类型模板参数而造成的代码膨胀,往往可消除,做法是以函数参数或class成员变量代替template参数;

因类型参数而造成的代码膨胀,往往可减低,做法是让带有完全相同二进制表述的具现类型共享实现码。