4.3.3 模板特化大小
在大多数情况下,C++(www.cppentry.com)程序库减少由库本身产生的代码的最好的方式就是:在用户程序中,减少库模板特化所需要的代码。而4.2.2节讨论的提升技术和使用指针容器技术也都是减少程序创建时间,并很好减少用户代码数量的好方法。
程序库应该尽可能少地使用模板。考虑4.2.2节的模板类BSTrce的实现,与其使用BSTree<char>、BSTree<long>和BSTree<int>,我们可以只在程序库中使用BSTree<long>,相应也节约了代码空间;但这样做有一个缺点:类BSTree的实现将会变得比较难以理解。
相似地,假设在程序库的开发过程中,它的实现需要一个List模板、一个Sequence模板和一个Linked_list模板;所有的模板都表述相互之间只具有少许区别的链表,并在程序库中使用相同的参数进行实例化,比如说List<String>、Sequence<String>和Linked-list<String>。于是,我们可以使用这其中的一个模板来代替所有的模板,或者可以创建一个具有上面3个模板各自优点的新模板。