第6条 泛型性的风味之二:够“泛”了吗
对泛型编程来说,如果需要限定模板输入参数是指针,那么它不算是一个泛型,只能说是一个特化版本。因为准则是,指针是迭代器,迭代器并非总是指针。当用一个模板来实现另一个模板,特别是它们存在一定的关系,那么这种关系有可能形成一些限制,导致某些泛型性的丧失。
如果拥有标准模板库中,更好的实现函数,不妨用模板库中的函数,作为特化版本,可以提供更高的效率和异常安全性。然而,我觉得我在做设计的时候往往忽略了异常安全。
现在最后一个问题,看过STL的Allocator么?当然,你可以像Allocator一样工作,但是这不是好的风格,因为第一要确保对象生命期,第二要确保不出现异常。那么如果你觉得非常可靠的话,可以做一个小型对象分配器,就像Loki那样,虽然我觉得这往往得不偿失。