泛型编程产生的代码更加简洁 拷贝代码使得维护变得困难,而且可能产生各种错误。使用泛型编程可以避免有害的重复。 第二个小例子:计算两个数字之和。下面是不使用模板完成的代码: 使用模板函数,代码变得更加简洁: 这只是展示使用模板获得简洁代码的一个小例子,STL 和 boost 包含更高级的算法,使得泛型编程个更加强大能够取代 boilerplate code。 但是为什么泛型编程没有得到广泛的使用? 泛型编程听起来更加自然和灵活,它可以提供比 OOP 更多的用法,然而许多开发人员发现它非常复杂,很难学习和使用。
如果你看一下知名的 C++ 开源设计,就会知道泛型编程大部分只用在 C++ 库里,像stl,boost,loki和 folly,但是很少有使用反省编程的应用,虽然他们大部分都用了模板库。 总结 现代 C++ 设计更倾向于强大的泛型编程方法,但是在使用之前你可能需要花费很大代价去学习。感谢 Andrei Alexandrescu、Scott Meyers 和 Herb Sutter 等人的努力让泛型编程更好理解,并简化了其应用。但是现代 C++ 设计还没有被 C++ 社区广泛使用。 (英文codergears,译者yangjianqiao0) 转自:http://code.csdn.net/news/2823075 |