将与参数无关的代码抽离templates
请记住:
Template生成多个classes和多个函数。所以任何template代码都不该与某个造成膨胀的template参数产生相依关系。
因非类型模板参数(non-type template parameters)而造成的代码膨胀,往往可消除,做法是以函数参数或class成员变量替换template参数。
因类型参数(type paramters)而找出的代码膨胀,往往可降低,做法是让带有完全相同二进制表述(binary representions)的具现类型(instantiation types)共享实现码。