posted on 2007-05-04 14:03 bo 阅读(3133) 评论(5) 编辑 收藏 引用 所属分类: Language
我觉得《C++设计新思维》这本书更像是一篇学术论文,它所描述的东西理论价值更大一些吧,用的时候就自己看着办好了,像smartwin里的policy,就算是用得比较成功的例子吧 回复 更多评论
首先,C++的模板更多的是给库设计者使用的.现有的模板使用困难的情况主要是由编译器无法正确良好的定位错误.对于一个库的设计者,必要的编译器灵活性是必须的,而且现有模板仍然满足不了灵活性的要求.所以0x里面还是要推出更加灵活更加泛型化的Concept;然后,C++的模板被用到现在这个样子当时也没有人预计到.最早B.Stroustrup也仅仅是认为模板就是附带了编译器验证类型的宏而已.metaprogramming完全可以看作是一群无聊的人在无聊的时候想出来取乐的智力竞赛题,只是Alexandrescu只是把这个游戏玩到登峰造极.实质上除了Typelist和自动继承层级以外,其它的库,特别是基于策略的思路构造的库,都让程序库的设计者大开了眼界,同时从他的实际使用情况来看,对很多问题而言,这种设计的适应性很好,结构也并不复杂.再加上未来的0x的语法糖,也会让Loki一类的库使用起来更加方便.至于他的书的头几章节,这种底层的东西总是要有些技巧性的,BOOST的MPL还不是一样写的神乎其神的. 回复 更多评论
Bjarne看了那书也说人家是“too clever”,呵呵就像前面的老兄说的,模板技术、泛型编程更多的情况是适用于库作者现在大量的C++库,包括Boost、Loki以及很多Language Binding库,都用到了书中提到的Policy技术,确实解决了以前存在的一些问题 回复 更多评论
个人比较认同“基于策略的思路构造的库”,这也是我期望模板所能带来的优越性。 回复 更多评论
模板带来的是强类型的多态(利用静多态)。它的好处就是利用强类型在编译时拦截大量的错误。同时,类的出现,使得操作成为类型的一部分。强类型化后,不仅仅数据结构的逻辑性得到检验,连施加在这些数据上的操作也得到约束。因此,合理地运用模板和随之带来的强类型多态,可以使得代码更高效,更简洁,也更安全。 由于业界的大多数程序员还在努力消化OOP带来的技术革命,还无法理解gp带来的优势。不同于OOP,业界也还没有出现GP方面完整的理论,所以对模板及其带来的好处还未能充分理解。 回复 更多评论
Powered by: C++博客 Copyright © bo